Unity容器对象解析层次结构
我的容器配置如下:
container = new UnityContainer()
.RegisterType<IA, A>()
.RegisterType<IB, B>()
.RegisterType<IC, C>(new InjectionConstructor(strA));
我需要的是,我想注册另一个 C 实例,例如:
container.RegisterType<IC, C>(new InjectionConstructor(strB));
注意 strA 和 strB 之间的区别。
A和B都需要C。但是我希望A使用第一个C,B使用第二个C。Unity
中有没有正确的方法来实现这一点?
谢谢
I have my container configured like following:
container = new UnityContainer()
.RegisterType<IA, A>()
.RegisterType<IB, B>()
.RegisterType<IC, C>(new InjectionConstructor(strA));
What I need is, I want to register another C instance like:
container.RegisterType<IC, C>(new InjectionConstructor(strB));
note the difference between strA and strB.
Both A and B need C. But I want A to use the first C and B to use the second C.
Is there a proper way in Unity to achieve that?
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您将需要使用 命名类型注册。
You will want to use a named type registration.
我过去通过装饰/外观公共接口来实现这一点,以便识别它们进行映射。
免责声明:代码是从内存中编写的,而不是 Visual Studio。
I've accomplished this in the past by decorating/facading the common interfaces in order to identify them for mappings.
Disclaimer: Code written from memory, not Visual Studio.