、、IFoo
および の 3 つの具象クラスがあります。FooA : IFoo
FooB : IFoo
MultiFoo : IFoo
のコンストラクタは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())