ほとんどの引数を持つコンストラクタから、すべての定義済みコンストラクタを、最小のコンストラクタ(デフォルトのコンストラクタ)まで試してみることは可能ですか?私は何を意味ユニティとコンストラクタ
編集
:
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の必要性。
「試してください」という正確な意味は? –
もう一度...あなたは「適切」と言っています...この問題が浮上している場所でコードを提供してください。コンストラクタは、渡されているもの以外の外部のエンティティに一般に依存すべきではありません。例外などを投げてはいけません。私の答えを編集しました... –
が質問を更新しました。 – jgauffin