我有一个接口 ,IFoo和三个具体类:FooA : IFoo,FooB : IFoo和MultiFoo : IFoo.
for 的构造函数MultiFoo如下所示:
public MultiFoo(params IFoo[] foos) { ... }
MultiFoo在 Unity 中注册时可以指定特定的分辨率覆盖吗?我希望能够做这样的事情:
container.RegisterType<IFoo, FooA>("Foo A");
container.RegisterType<IFoo, FooB>("Foo B");
container.RegisterType<IFoo, MultiFoo>(new ContainerControlledLifetime(),
new ResolvedOverride<IFoo>("Foo A"),
new ResolvedOverride<IFoo>("Foo B")
);
然后它将在解析时将已解析的 FooA 和已解析的 FooB 传递给构造函数:
new MultiFoo(new FooA(), new FooB())