gpt4 book ai didi

.net - WCF 温莎城堡和 WAS

转载 作者:行者123 更新时间:2023-12-02 02:36:43 25 4
gpt4 key购买 nike

我有一个托管在 WAS 中的服务。我正在尝试为该服务注入(inject)依赖项,但一直找不到在哪里执行此操作。在 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 版本。

关于如何让这一切正常运作的任何想法?

谢谢

最佳答案

WCF Facility将为您做到这一点(以及更多)。

关于.net - WCF 温莎城堡和 WAS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1278753/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com