.net - 解析泛型类型参数的元数据标记

标签 .net reflection clr

.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 - 解析泛型类型参数的元数据标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1249745/

相关文章:

java - 在Java中,可以将一行代码作为方法参数吗?

c# - 如何优化此代码

c# - 为什么结构对齐取决于字段类型是原始类型还是用户定义的?

c# - 通过 SOS 调查 CLR

c# - 给定可能的完整文件路径,检查文件或父目录是否存在

c# - 我的 .net 程序导致 BSOD

c# - 来自 int、int16、int64 的反射 GetBytes

c# - ASP.NET Active Directory C# 字段规范

c# - 具有默认内容值和绑定(bind)值的复选框

c++ - 如何修复 C++ winforms 应用程序中的 _CrtIValidHeapPoint(pUserData) 断言失败