次のようなコードがあります。
class A: IA { ... }
class B: IB {
public B(IA a, ...) { ... }
...
}
class C1 {
public C1(IA a, IB b, ...) { ... }
}
class C2 {
public C2(IA a, IB b, ...) { ... }
}
私が欲しいのは、A の 2 つのインスタンスだけです。1 つは C1 に、もう 1 つは C2 に使用します。B の 2 つのインスタンスが必要です。C1 に渡される B のインスタンスは、C1 用に作成された A の同じインスタンスを取得する必要があります。C2 と彼のパラメーターには、A の異なるインスタンスが必要です。Autofac でこのシナリオを構成するにはどうすればよいですか? 所有インスタンスの有効期間機能がこれを処理するはずだったように見えましたが、投稿された例は 2 層ではなく 1 層のみでした。
私の実際の状況はもっと複雑です。私は IB の継承者を 12 個と、IB 継承者のさまざまな組み合わせを取る 6 個の C 定義を持っています。名前付きインスタンスの使用は避けたかったのです。これは、ブートストラップが大幅に肥大化し、保守が困難になるためです。
二次的な質問: DryIoc はこれをサポートしていますか? 私は切り替えに話しかけられる可能性があります。