Sam*_*ier 5 c# structuremap registry dependencies code-injection
是否可以在注册表中注册接口,然后"重新注册"它以覆盖第一次注册?
IE:
For<ISomeInterface>().Use<SomeClass>();
For<ISomeInterface>().Use<SomeClassExtension>();
Run Code Online (Sandbox Code Playgroud)
我在运行时想要的是我的对象工厂SomeClassExtension在我要求时返回ISomeInterface.
提前致谢!
好消息,我发现是的。这完全取决于注册表规则添加到对象工厂容器的顺序。因此,如果您像我一样使用多个注册表类,则需要找到一种方法来优先将它们添加到容器中。
换句话说,不要使用以错误的顺序.LookForRegistries()获取所有类的方法Registry,而是尝试查找所有Registry文件,按照您想要的顺序设置它们,然后手动将它们添加到对象工厂容器中:
ObjectFactory.Container.Configure(x => x.AddRegistry(registry));
Run Code Online (Sandbox Code Playgroud)
这样,您就可以完全控制您想要的规则。
希望能帮助到你 :)
| 归档时间: |
|
| 查看次数: |
2020 次 |
| 最近记录: |