Autofac は、このようなコンポーネントを登録するときに「最適な」ctor を見つけます
builder.RegisterType<MyType>()...;
or
builder.RegisterType(typeof(MyType))...;
Autofac のリフレクション コードを再利用して ctor パラメーターを見つける方法を探しています。このロジックは公開 API で利用できますか?
上記の欲しい理由は…
コンパイル時に不明なタイプのコンポーネントがいくつかあります (=動的プロキシ)。現在、私はこのように登録しています
builder.Register(c =>
{
var dep1 = c.Resolve<IFoo>();
var dep2 = c.Resolve<IBar>();
var dep3 = c.Resolve<IFooBar>();
return someProxyFactory.CreateProxyFrom<MyType>(dep1, dep2, dep3);
}...;
---編集---
プロキシが関与していない場合でも、RegisterType を使用できない場合は、同じ質問が有効です。例えば...
builder.Register(c =>
{
[...]
if(something)
return new SomeType(dep1, dep2, dep3);
else
return new SomeOtherType(dep1, dep4, dep2, dep5);
}
ここでも、可能であれば Autofac の「find ctor ロジック」を再利用したいと考えています。
---編集終了---
それは正常に動作しますが、可能であれば、autofac のロジックを使用して ctor の依存関係を見つけたいと思います。のようなものを書きたい
builder.Register(c =>
{
object[] ctorDependencies = letAutofacDoTheSimilarWorkAsInRegisterType(typeof(MyType));
return someProxyFactory.Create<MyType>(ctorDependencies);
}
これは可能ですか、それとも独自のロジックを作成する必要がありますか? または、このシナリオで使用できるまったく異なるアプローチはありますか?