wcf - 将 IoC 支持添加到 Windows 服务中托管的 WCF 服务 (Autofac)

标签 wcf windows-services inversion-of-control autofac

我想设置我的 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/

相关文章:

c# - Windows 服务和常规应用程序有什么区别?

c# - 由于循环作用域回调引用导致 ninject 内存泄漏

PHP IoC 交叉依赖

c# - 如何以编程方式为 WCF 服务设置单个终结点

wcf - 无法使用 WCF 调用具有基本身份验证的 Web 服务

c# - C# Windows 服务的安全性

java - 如何使用运行时参数创建原型(prototype)范围的 @Bean?使用 getBean(String name, Object...args)?

c# - 仅在服务器端使用证书

.net - 日志中的 BinarySecurityToken

c# - 多线程代码执行的 Log4Net C# 日志记录问题