我有一个界面:IFoo 实现该接口的两个类:FooOne和FooTwo
一个类ClassOne在构造函数中接收IFoo参数。
我在Classone中有两个方法MethodOne和methodTwo。
如果我调用MethodOne,我需要Classone中的对象FooOne
如果我调用MethodTwo,我需要Classone中的对象FooTwo
我如何配置Unity以便ClassOne接收MethodOne调用的FooOne实例,而ClassOne只使用一个容器接收FooTwo for MethodTwo调用?
主要条件是我需要一次创建一个对象FooOne或FooTwo。
答案 0 :(得分:1)
使用命名注册:
container.RegisterType<IFoo, FooOne>("one");
container.RegisterType<IFoo, FooTwo>("two");
//...
class Classone
{
IFoo MethodOne()
{
return _container.Resolve<IFoo>("one");
}
IFoo MethodTwo()
{
return _container.Resolve<IFoo>("two");
}
}