根据已知部分分别解决类型

时间:2011-07-04 18:34:56

标签: reflection unity-container ioc-container

当你分别知道这个类及其泛型时,有人知道从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>????)
}

容器内部是Execute1<DoSomeWork>:IExecuteExecute2<DoSomeWork>:IExecute

基于DoSomeWork,我需要解析所有Execute<DoSomeWork>类。

这有意义吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

您可以使用Type.MakeGenericType方法基于具有特定类型参数的泛型类型创建类型:

public interface IExecute<T> { }

...

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

然后使用此类型向IOC询问具体实例。