【发布时间】:2010-05-07 08:06:04
【问题描述】:
我想设置我的 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 个参数的 ctor。第三个是IComponentRegistration 类型,我不知道从哪里可以得到它。有什么想法吗?
提前致谢。
【问题讨论】:
标签: wcf windows-services inversion-of-control autofac