LightInject を使用して、複数のコンストラクター パラメーターで登録したいサービスがあるとします。例:
container.Register<double, bool, string, IFoo<String>>(
(factory, arg1, arg2, arg3) => new Foo<String>(arg1, arg2, arg3));
登録時に ILifetime インスタンスを指定する方法を理解するのに苦労しています。簡単な登録を使用すると、次のように簡単な登録に ILifetime を設定できます。
container.Register<IFoo, Foo>(new PerRequestLifeTime());
ファクトリを使用するすべての Register メソッドは、一時的なオブジェクトを想定しているようです。
パラメータ用に別のインターフェイスを作成して登録することもできますが、コンストラクタで複数のパラメータを使用するインスタンスごとに新しいものを作成したくありません。
では、ファクトリーとライフタイムにサービスを登録するにはどうすればよいでしょうか?
私は IoC/DI にやや慣れていないことを認めます。これは、このタスクを適切に達成する方法を誤解していることが原因である可能性があります。これを行う別の方法もあると確信しています。