1

我正在构建 WCF 4.0 REST 服务并希望使用 Autofac 作为 DI 容器。显然,我希望能够调用服务类的参数化构造函数(服务合同实现),它接受一堆接口来使用。这些接口将在 Autofac 容器中注册,我希望在创建我的服务类的实例时解析和使用它们(而不是调用默认的非参数化构造函数)。

MVC 控制器也有类似的问题,Autofac MVC 集成包解决了这个问题。是否有任何可用于 WCF REST 4.0 的东西?如果不是,解决我的问题的最佳方法是什么?例如,有没有像 MVC 的 DependencyResolver 之类的东西,我可以设置它来使用 Autofac?

请注意,从 4.0 开始,他们更改了 WCF REST 中的一些概念。例如,现在没有.svc文件,路由足以调用所需的方法。我对 WCF REST 4.0 还很陌生,所以我想在花几天时间实现一些巨大的自定义机制之前向社区征求建议。唉,通过互联网快速搜索并没有为我提供可接受的解决方案。

4

2 回答 2

2

在您的全球应用程序启动中:

//Build a container with your service registered.
var builder = new ContainerBuilder();
builder.RegisterType<YourService>();
var container = builder.Build();

//Set AutofacHostFactory.Container with this built container.
AutofacHostFactory.Container = container;

//Use AutofacWebServiceHostFactory instead of WebServiceHostFactory
var factory = new AutofacWebServiceHostFactory();

//Add your routes
RouteTable.Routes.Add(new ServiceRoute("YourServiceUrl", factory, typeof(YourService)));

就这样。

于 2012-11-15T13:14:14.683 回答
0

您是否查看过现有的 WCF 集成支持?

于 2011-07-13T15:12:06.267 回答