首页 文章

Autofac WCF REST 4.0

提问于
浏览
1

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

MVC控制器存在类似问题,由Autofac MVC Integration软件包解决 . WCF REST 4.0有什么可以立即使用的吗?如果不是,解决问题的最佳方法是什么?例如,有什么像MVC的DependencyResolver,我可以设置使用Autofac吗?

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

2 回答

  • 0

    在您的全局应用程序启动:

    //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)));
    

    就这样 .

  • 2

    你看过the existing WCF integration支持吗?

相关问题