我尝试在结构图中注册命名实例.但我的试验并不成功.
什么是正确的方法?
目前我这样做:
IService bus = CreateInstanceOfServiceBus();
ObjectFactory.Configure(cfg => cfg.For<IServiceBus>()
.AddInstances(x =>x.IsThis(bus)
.Named("foobar"))
.Singleton());
Run Code Online (Sandbox Code Playgroud)
但是当我尝试获取命名实例时,没有找到任何内容:
ObjectFactory.TryGetInstance<IServiceBus>("foobar");
Run Code Online (Sandbox Code Playgroud)
提前致谢.最好的祝福.
约阿希姆
小智 6
您只需注册如下
IServiceBus bus = CreateInstanceOfServiceBus();
ObjectFactory.Initialize(x => x.ForSingletonOf<IServiceBus>().Use(bus).Named("bus"));
Run Code Online (Sandbox Code Playgroud)
现在您可以像这样解析实例
ObjectFactory.GetNamedInstance<IServiceBus>("bus");
Run Code Online (Sandbox Code Playgroud)
要么
ObjectFactory.TryGetInstance<IServiceBus>("bus");
Run Code Online (Sandbox Code Playgroud)
您正在使用Configure方法,它只是向容器添加另一个配置.考虑是否要更改为Initialize,初始化新配置.
| 归档时间: |
|
| 查看次数: |
1232 次 |
| 最近记录: |