考虑一个通用接口
我想编写一个方法,找到实现了特定类型
public interface IA<T>
{
}
以及两种实现方式。
public class A1 : IA<string>
{}
public class A2 : IA<int>
{}
我想编写一个方法,找到实现了特定类型
IA
接口的类。public Type[] Find(IEnumerable<Type> types, Type type)
以便进行以下调用
Find(new List<Type>{ typeof(A1), typeof(A2)}, typeof(string))
将返回类型A1
重要提示
我可以假设作为列表传递的所有类型都将实现IA
,但不一定是直接实现(例如A1
可以继承实现IA<string>
的BaseA
)
如何通过反射实现这一点?
MakeGenericType
对我来说确实是缺失的一块。谢谢! - Omri Btian