我想设置我的 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
,我不知道从哪里可以得到它。有任何想法吗 ?
提前致谢。