WebOperationContext.Current в службе WCF null
У меня есть служба WCF с файлом службы как - Serivce.svc
Здесь я могу прочитать входящие заголовки, используя WebOperationContext.Current
Код из служебного файла обращается к служебному слою доступа к данным, который выполняет другие вызовы; Мне нужно сделать некоторую работу на уровне доступа к данным на основе переданного заголовка.
Тем не менее WebOperationContext.Current
является null
Вот.
Как мне обойти это?
1 ответ
От вашего вопроса, кажется, ваш "уровень утилит доступа к данным" зависит от информации, которая была передана службе через заголовки. Сделайте это явным, желательно через интерфейс, чтобы его можно было легко проверить. Что-то вроде этого:
public class DataAccessLayer(IMetaInfoFromHeaders requiredInfo)
{ /* implementation */ }
(В качестве альтернативы вы могли бы просто иметь IMetaInfoFromHeaders
быть аргументом только для одного или нескольких методов в DAL, если это кажется лучше - это зависит от специфики.)
Ваш сервис отвечает за обработку сообщения. Он должен извлечь информацию из заголовков и передать ее в DAL, используя объект, реализующий IMetaInfoFromHeaders
,
Итог: не делайте DAL зависимым от WebOperationContext.