【发布时间】:2009-08-08 19:58:10
【问题描述】:
.NET 4.0(或更早版本)反射 API 有什么方法可以解析泛型类型参数?请参阅我的 ArgumentException 注释后的两行以了解我当前的尝试。
[TestMethod]
public void TestGenericParameterTokenResolution()
{
Type genericParameter = typeof(List<>).GetGenericArguments()[0];
Assert.IsTrue(genericParameter.IsGenericParameter);
int metadataToken = genericParameter.MetadataToken;
// make sure the metadata token is a GenericParam
Assert.AreEqual(metadataToken & 0xFF000000, 0x2A000000);
Module module = typeof(List<>).Module;
// the following both throw an ArgumentException.
Type resolvedParameter = module.ResolveType(metadataToken);
resolvedParameter = (Type)module.ResolveMember(metadataToken);
Assert.AreSame(genericParameter, resolvedParameter);
}
【问题讨论】:
标签: .net reflection clr