【发布时间】:2011-02-23 05:19:54
【问题描述】:
给定一个特定的接口ITarget<T> 和一个特定的类型myType,如果myType 实现ITarget<T>,您将如何确定T。 (这段代码sn-p取自an earlier question的答案。)
foreach (var i in myType.GetInterfaces ())
if (i.IsGenericType
&& i.GetGenericTypeDefinition() == typeof(ITarget<>))
return i.GetGenericArguments ()[0] ;
但是,这只检查单个类型,myType。我将如何创建 all 此类类型参数的 dictionary,其中键是 T,值是 myType?我认为它看起来像这样:
var searchTarget = typeof(ITarget<>);
var dict = Assembly.GetExecutingAssembly().[???]
.Where(t => t.IsGenericType
&& t.GetGenericTypeDefinition() == searchTarget)
.[???];
空白处是什么?
【问题讨论】:
标签: c# generics reflection