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.

Другие вопросы по тегам