1
タイプを登録するためにUnityを呼び出すパススルーメソッドを作成しようとしています。これは、作成しようとしているメソッドの本体です。制約1つの汎用パラメータをもう1つのサブタイプにする
public static void RegisterType<T,U>()
{
myContainer.RegisterType<T, U>();
}
myContainerプロパティはIUnityContainerです。これを構築しようとすると、私は得る
タイプ 'U'は、ジェネリック型またはメソッド 'TTo'として使用できません。 'Microsoft.Practices.Unity.UnityContainerExtensions.RegisterType(Microsoft.Practices.Unity。 IUnityContainer、params Microsoft.Practices.Unity.InjectionMember []) '。 "U"から "T"へのボクシング変換または型パラメータ変換はありません。
UがインターフェイスTを実装していることをコンパイラにどのように伝えることができますか?
public static void RegisterType<T,U>() where U : T
{
myContainer.RegisterType<T, U>();
}
:
ちょうどそれをチェックしました。それは何のエラーもなくコンパイルしました。あなたは速く答えました:) – Samich
@Samich:そうでした。それは期待通りに動作するようです。 – zerkms
Nice!私はちょうどそれが何か難しいと思った。どうも。 –