、、IFooおよび の 3 つの具象クラスがあります。FooA : IFooFooB : IFooMultiFoo : IFoo
のコンストラクタはMultiFoo次のようになります。
public MultiFoo(params IFoo[] foos) { ... }
MultiFooUnityに登録するときに、特定の解像度のオーバーライドを指定できますか? 私はこのようなことができるようにしたいと思います:
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())