我有一个 WCF 服务,服务文件为 - Serivce.svc
在这里,我可以使用WebOperationContext.Current
Service文件中的代码访问进行其他调用的数据访问实用程序层;我需要根据传入的标头在数据访问层中做一些工作。
但是,此处WebOperationContext.Current
为null
。
我该如何解决这个问题?
答案 0 :(得分:3)
从您的问题来看,您的“数据访问实用程序层”似乎依赖于通过标头传递给服务的信息。最好通过界面使其显式,以便它易于测试。像这样:
public class DataAccessLayer(IMetaInfoFromHeaders requiredInfo)
{ /* implementation */ }
(或者你可以让IMetaInfoFromHeaders
成为DAL中一个或几个方法的参数,如果这似乎更好 - 这取决于细节。)
您的服务负责处理邮件。它应该从标头中提取信息,并使用实现IMetaInfoFromHeaders
的对象将其传递给DAL。
底线:不要让DAL依赖于WebOperationContext。