当你分别知道这个类及其泛型时,有人知道从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>:IExecute
和Execute2<DoSomeWork>:IExecute
基于DoSomeWork,我需要解析所有Execute<DoSomeWork>
类。
这有意义吗?
谢谢!
答案 0 :(得分:2)
您可以使用Type.MakeGenericType
方法基于具有特定类型参数的泛型类型创建类型:
public interface IExecute<T> { }
...
Type targetType = ...;
Type specificType = typeof(IExecute<>).MakeGenericType(targetType);
然后使用此类型向IOC询问具体实例。