DI コンテナーがあり、DI コンテナーを介してコンストラクターに引数を渡したいと考えています。
つまり、
public interface IPerson { }
public class Person : IPerson {
private int _personId;
Person() { _personId = 0; }
Person(int id) { _personId = id; }
}
...
Container.Register(Component.For<IPerson>().ImplementedBy<Person>().Lifestyle.Transient);
...
//Person is already available
Container.Resolve<Person>(55);
//Person is not available
Container.Resolve<Person>();
これは基本的に私がやりたいことです。新しいクラスを作成する必要がある場合もあれば、既にクラスを利用できる場合もあります。どうすればこれを達成できますか?
動的パラメーターを使用できるのではないかと考えましたが、方法がわかりません。
前もって感謝します。
Factory パターンはソリューションをエレガントにしますが、必要なのは非常に単純なソリューションであり、同様に機能する場合、これは私のアプリケーションに多くの複雑さを追加します。
自分自身に単一の整数を渡すことは、同じ仕事をするためにファクトリー全体を書くよりもはるかに簡単です。