我想设置我的 WCF 服务以使用 IoC 容器。 Autofac wiki 中有一篇关于 WCF 集成的文章,但它仅显示了与 IIS 中托管的服务的集成。
但是我的服务托管在 Windows 服务中。
我在这里得到了有关开幕式事件的建议 http://groups.google.com/group/autofac/browse_thread/thread/23eb7ff07d8bfa03
我听从了建议,到目前为止我得到的是:
private void RunService<T>()
{
var builder = new ContainerBuilder();
builder.Register(c => new DataAccessAdapter("1")).As<IDataAccessAdapter>();
ServiceHost serviceHost = new ServiceHost(typeof(T));
serviceHost.Opening += (sender, args) => serviceHost.Description.Behaviors.Add(
new AutofacDependencyInjectionServiceBehavior(builder.Build(), typeof(T), ??? ));
serviceHost.Open();
}
AutofacDependencyInjectionServiceBehavior 有一个带有 3 个参数的构造函数。第三个是 IComponentRegistration
类型,我不知道从哪里可以得到它。有什么想法吗?
提前致谢。
最佳答案
我写了一篇博客文章,介绍如何在自托管 WCF 服务时使用 Autofac WCF 集成。
http://alexmg.com/self-hosting-wcf-services-with-the-autofac-wcf-integration/
这应该足以为您指明正确的方向。我将更新 Autofac wiki 上的文档以包含相同的示例。
关于wcf - 将 IoC 支持添加到 Windows 服务中托管的 WCF 服务 (Autofac),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2787089/