2011-07-04 3 views
0

クラスとそのジェネリックを別々に知っている場合、IOCコンテナ、特にUnity 2.0からオブジェクトを解決する方法は誰も知っていますか?容器の内側パートを別に知っていることに基づいてタイプを解決する

簡単な例

public class DoSomeWork {bla} 
public class Execute1<DoSomeWork> : IExecute {bla} 
public class Execute2<DoSomeWork> : IExecute {bla} 

方法

public void go(DoSomeWork k) 
{ 

    unityContainer.ResolveAll(IExecute<DoSomeWork>????) 
} 

私はすべてのExecute<DoSomeWork>クラスを解決する必要がありDoSomeWorkに基づきExecute1<DoSomeWork>:IExecuteExecute2<DoSomeWork>:IExecute

です。

それは意味がありますか?

ありがとうございます!

答えて

2

あなたが特定の型引数をジェネリック型に基づいて型を作成するType.MakeGenericTypeメソッドを使用することができます。

public interface IExecute<T> { } 

... 

Type targetType = ...; 
Type specificType = typeof(IExecute<>).MakeGenericType(targetType); 

は、その後、特定のインスタンスのためにIOCに依頼するこのタイプを使用します。

+0

パーフェクト!!!!!!!!!!!!!!!ありがとう! – William

関連する問題