WCF服务中的WebOperationContext.Current null

时间:2012-09-20 10:49:47

标签: c# wcf weboperationcontext

我有一个 WCF 服务,服务文件为 - Serivce.svc 在这里,我可以使用WebOperationContext.Current

读取传入的标头

Service文件中的代码访问进行其他调用的数据访问实用程序层;我需要根据传入的标头在数据访问层中做一些工作。

但是,此处WebOperationContext.Currentnull

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

从您的问题来看,您的“数据访问实用程序层”似乎依赖于通过标头传递给服务的信息。最好通过界面使其显式,以便它易于测试。像这样:

public class DataAccessLayer(IMetaInfoFromHeaders requiredInfo)
{ /* implementation */ }

(或者你可以让IMetaInfoFromHeaders成为DAL中一个或几个方法的参数,如果这似乎更好 - 这取决于细节。)

您的服务负责处理邮件。它应该从标头中提取信息,并使用实现IMetaInfoFromHeaders的对象将其传递给DAL。

底线:不要让DAL依赖于WebOperationContext。