2011-09-11 10 views
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>(); 
} 

答えて

7

はありません。この動作しますか?

+0

ちょうどそれをチェックしました。それは何のエラーもなくコンパイルしました。あなたは速く答えました:) – Samich

+1

@Samich:そうでした。それは期待通りに動作するようです。 – zerkms

+0

Nice!私はちょうどそれが何か難しいと思った。どうも。 –

関連する問題