工厂方法的Autofac单件

the*_*ker 2 c# autofac easynetq

我几乎找一个端口Autofac被实施这里有温莎城堡.这IBus是EasyNetQ库提供的接口,我想注册一个将IBus实例实例化为单例的工厂.BusBuilder.CreateMessageBus是工厂方法.Castle Windsor的例子:

container.Register(
    Component.For<IBus>()
             .UsingFactoryMethod(BusBuilder.CreateMessageBus)
             .LifestyleSingleton()
    );
Run Code Online (Sandbox Code Playgroud)

Cyr*_*and 7

试试这个

container.Register(c => BusBuilder.CreateMessageBus())
         .As<IBus>()
         .SingleInstance(); 
Run Code Online (Sandbox Code Playgroud)

要么

container.RegisterInstance(BusBuilder.CreateMessageBus())
         .As<IBus>();
Run Code Online (Sandbox Code Playgroud)

第二个解决方案将创建IBusAutofac配置期间实例,而第二解决方案将创建它的第一次IBus是通过解决Autofac