3

我几乎正在寻找一个使用 Castle Windsor实现的Autofac 端口。IBus是 EasyNetQ 库提供的接口,我想注册一个工厂,将 IBus 实例实例化为单例。BusBuilder.CreateMessageBus是工厂方法。温莎城堡的例子:

container.Register(
    Component.For<IBus>()
             .UsingFactoryMethod(BusBuilder.CreateMessageBus)
             .LifestyleSingleton()
    );
4

1 回答 1

8

试试这个

container.Register(c => BusBuilder.CreateMessageBus())
         .As<IBus>()
         .SingleInstance(); 

或者

container.RegisterInstance(BusBuilder.CreateMessageBus())
         .As<IBus>();

第二种解决方案将在 Autofac 配置期间创建实例,而第二种解决方案将在AutofacIBus第一次IBus解析an 时创建它

于 2015-10-07T15:06:41.887 回答