MetadataReader 类 
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
读取 ECMA 335 CLI 规范定义的元数据。
public ref class MetadataReader sealedpublic sealed class MetadataReadertype MetadataReader = classPublic NotInheritable Class MetadataReader- 继承
- 
				MetadataReader
示例
此示例演示如何为程序集创建 MetadataReader 并从中读取所有类型定义:
using var fs = new FileStream("Example.dll", FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
using var peReader = new PEReader(fs);
MetadataReader mr = peReader.GetMetadataReader();
foreach (TypeDefinitionHandle tdefh in mr.TypeDefinitions)
{
    TypeDefinition tdef = mr.GetTypeDefinition(tdefh);
    string ns = mr.GetString(tdef.Namespace);
    string name = mr.GetString(tdef.Name);
    Console.WriteLine($"{ns}.{name}");
}
注解
MetadataReader 从指定的 CLI 元数据中读取表和堆的内容。 它操作低级别构造,例如类型和方法定义。 有关使用反射构造检查程序集内容的更高级别的 API,请参阅 MetadataLoadContext。
可以使用构造函数(如 MetadataReader(Byte*, Int32))为给定的内存位置创建 的 MetadataReader 实例。 若要从可移植可执行文件程序集文件读取元数据,请创建 PEReader 并使用 GetMetadataReader(PEReader) 扩展方法。
CLI 元数据的格式由 ECMA-335 规范定义。 有关详细信息,请参阅 Ecma 国际网站上的标准 ECMA-335 - 公共语言基础结构 (CLI) 。
构造函数
| MetadataReader(Byte*, Int32, MetadataReaderOptions, MetadataStringDecoder) | 从存储在给定内存位置的元数据初始化 MetadataReader 类的新实例。 | 
| MetadataReader(Byte*, Int32, MetadataReaderOptions) | 从存储在给定内存位置的元数据初始化 MetadataReader 类的新实例。 | 
| MetadataReader(Byte*, Int32) | 从存储在给定内存位置的元数据初始化 MetadataReader 类的新实例。 | 
属性
| AssemblyFiles | 读取 ECMA 335 CLI 规范定义的元数据。 | 
| AssemblyReferences | 读取 ECMA 335 CLI 规范定义的元数据。 | 
| CustomAttributes | 读取 ECMA 335 CLI 规范定义的元数据。 | 
| CustomDebugInformation | 读取 ECMA 335 CLI 规范定义的元数据。 | 
| DebugMetadataHeader | 获取从 #Pdb 流解码的信息;如果流不存在,则为  | 
| DeclarativeSecurityAttributes | 读取 ECMA 335 CLI 规范定义的元数据。 | 
| Documents | 读取 ECMA 335 CLI 规范定义的元数据。 | 
| EventDefinitions | 读取 ECMA 335 CLI 规范定义的元数据。 | 
| ExportedTypes | 读取 ECMA 335 CLI 规范定义的元数据。 | 
| FieldDefinitions | 读取 ECMA 335 CLI 规范定义的元数据。 | 
| ImportScopes | 读取 ECMA 335 CLI 规范定义的元数据。 | 
| IsAssembly | 获取用于指示元数据是否表示程序集的值。 | 
| LocalConstants | 读取 ECMA 335 CLI 规范定义的元数据。 | 
| LocalScopes | 读取 ECMA 335 CLI 规范定义的元数据。 | 
| LocalVariables | 读取 ECMA 335 CLI 规范定义的元数据。 | 
| ManifestResources | 读取 ECMA 335 CLI 规范定义的元数据。 | 
| MemberReferences | 读取 ECMA 335 CLI 规范定义的元数据。 | 
| MetadataKind | 获取元数据类型。 | 
| MetadataLength | 获取基础数据的长度。 | 
| MetadataPointer | 获取指向基础数据的指针。 | 
| MetadataVersion | 获取从元数据头读取的版本字符串。 | 
| MethodDebugInformation | 读取 ECMA 335 CLI 规范定义的元数据。 | 
| MethodDefinitions | 读取 ECMA 335 CLI 规范定义的元数据。 | 
| Options | 获取传递给构造函数的 MetadataReaderOptions。 | 
| PropertyDefinitions | 读取 ECMA 335 CLI 规范定义的元数据。 | 
| StringComparer | 获取用于比较存储在元数据中的字符串的比较器。 | 
| TypeDefinitions | 读取 ECMA 335 CLI 规范定义的元数据。 | 
| TypeReferences | 读取 ECMA 335 CLI 规范定义的元数据。 | 
| UTF8Decoder | 获取读取器用于从 UTF8 编码的字节序列生成字符串实例的解码器。 |