我有一个托管在WAS中的服务。我正在尝试使用依赖项注入此服务,但一直无法找到执行此操作的位置。在IIS中托管的WCF服务中,您可以使用application_onstart事件来实例化城堡容器,但这在我的方案中不可用。所以,我正在尝试创建一个这样的自定义主机工厂:
public override ServiceHostBase CreateServiceHost(string constructorString, Uri[] baseAddresses)
{
container = new WindsorContainer();
container.Register(Component.For<IMyDependency>().ImplementedBy<MyDependency>());
DefaultServiceHostFactory.RegisterContainer(container.Kernel);
var service = container.Resolve(constructorString);
ServiceHost serviceHost = new ServiceHost(service, baseAddresses);
return serviceHost;
}
这适用于单例WCF服务,但是如何让它与每次调用一起使用?对于非单例服务,它期望将类型传递给ServiceHost构造函数而不是实际服务。但是,如果我这样做,那么当服务旋转时,它只查找无参数构造函数,而不是DI版本。
有关如何使这一切工作的任何想法?
由于