【发布时间】:2018-11-12 12:13:43
【问题描述】:
我正在尝试将 SimpleInjector 嵌入到我的 WCF 项目中(我已按照说明进行操作 here)。到目前为止,除了 IHttpHandler 问题外,一切都很顺利: 当前实现使用 IHttpHandler ,而后者又使用 MyServiceWrapper 静态实例:
public class IsAliveHandler : IHttpHandler
{
private const string SERVER_ERROR = "Bad";
private const string SERVER_OK = "OK";
public void ProcessRequest(HttpContext context)
{
var quoteSucceeded = false;
var isLastLoginSucceeded = MyServiceWrapperContainer.Manager.IsLastLoginSucceeded;
//More logic here ...
}
}
现在,由于我将我的应用程序移动到使用 SimpleInjector DI 机制,因此我不能使用这种静态访问,因为我想使用与 DI 容器持有的相同的实例。 这里的构造函数注入异常:
[MissingMethodException: Constructor on type '***.Applications.MyServiceWrapperService.KeepAliveHandler.IsAliveHandler' not found.]
有没有办法在这种情况下使用容器?有替代品吗?
一般来说,我可以理解这样的问题是使用状态的味道,但目前这是要求。
【问题讨论】:
标签: c# wcf dependency-injection simple-injector ihttphandler