一部のIoCコンテナでは、コンテナで実行できない引数をコンストラクタに含めることができます。これはMicrosoft.Extensions.DependencyInjection
ライブラリとIServiceProvider
で可能ですか?そうでない場合は、この種の問題に対するきれいな解決策は何ですか?例えば.NETコアのオプションのコンストラクタインジェクション引数
:
class InContainer
{
public InContainer(NotInContainer dependency) { ... }
}
class Consumer
{
public Consumer(IServiceProvider serviceProvider)
{
NotInContainer currentDependency = ... // from some other source
// passing the anonymous object here is not supported,
// but I would like to
InContainer = serviceProvider.GetService<InContainer>(
new { dependency = currentDependency }
);
}
}
登録中、またはインスタンス単位での意味ですか? –