を必要とするコンストラクタを使用します登録型は、次のコンストラクタシグネチャを与えられたパラメータ配列
public MyClass(Class1 arg1, params Class2[] arg2)
は、どのように私はUnityがInjectionConstructorを使用して、特定の名前付きの型を渡すとのMyClassを登録することができます。
私は次のことを試してみた:
unityContainer.RegisterType<IMyClass, MyClass>(new InjectionConstructor(typeof(Class1), new ResolvedParameter<IClass2>("name1"), new ResolvedParameter<IClass2>("name2")))
が、署名付きコンストラクタが存在しないことを言った例外を取得:
public MyClass(Class1 arg1, Class2 arg2, Class2 arg3)
私はMyClassのコンストラクタをオーバーロードすることで、問題の周りを持っているが。コンストラクタをオーバーロードしないでこれを行う方法はありますか?それは単に直接列挙されている「クラス2」のインスタンスを嫌うと思われるので
ありがとうございます。 IClass2の実装がいくつかあり、そのうちのいくつかをMyClassコンストラクタに渡すだけなので、私は注入コンストラクタを使用しています。これを行うより良い方法があれば教えてください! – macleojw
@macleojw私の更新をご覧ください。 –