说我有这个班级
public class MyObject : IObject
{
public MyObject(IObject2 object2)
{
}
}
我决心:
Container.Resolve<IObject>("SomeName");
是否可以配置Unity,以便每当使用任何名称解析IObject时,IObject2也将使用相同的名称解析(假设它已使用这样的名称注册)?
我正在寻找一种不使用InjectionConstructor的方法,因为我不想为我介绍的每个新名称更新它。
答案 0 :(得分:2)
这应该有效:
container.RegisterType<IObject2, MyObject2>("someName");
// ...
container.RegisterType<IObject, MyObject>("someName",
new InjectionConstructor(
new ResolvedParameter<IObject2>("someName")));
如果要注册更多名称,可以考虑将这个小片段打包成一个可重用的方法,该方法将名称作为输入参数。
我现在附近没有Unity,所以这或多或少来自记忆......