ほとんどの引数を持つものから最も具体的でないもの(デフォルトのコンストラクタ)まで、定義されたすべてのコンストラクタを団結させることは可能ですか?
編集
私が意味したのは:
foreach (var constructor in concrete.GetConstructorsOrderByParameterCount())
{
if(CanFulfilDependencies(constructor))
{
UseConstructor(constructor);
break;
}
}
Unity がほとんどのパラメーターを持つコンストラクターのみを試行することは望ましくありません。適切なコンストラクターが見つかるまで試行を続けてほしい。Unity がデフォルトでこの動作を提供しない場合、これを行うための拡張機能または何かを作成することは可能ですか?
編集 2
2 つのコンストラクターを持つクラスを取得しました。
public class MyConcrete : ISomeInterface
{
public MyConcrete (IDepend1 dep, IDepend2 dep2)
{}
public MyConcrete(IDepend1 dep)
{}
}
クラスは、複数のプロジェクトで使用されるライブラリに存在します。このプロジェクトでは、2 番目のコンストラクターを使用します。しかし、最初のコンストラクターによる依存関係を満たすことができないため、Unity は停止します。また、最初のコンストラクターは他のプロジェクトの DI によって使用されるため、クラスを変更したくありません。
したがって、Unity がすべてのコンストラクターを解決しようとする必要があります。