MetadataReader 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
读取 ECMA 335 CLI 规范定义的元数据。
public ref class MetadataReader sealed
public sealed class MetadataReader
type MetadataReader = class
Public 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 编码的字节序列生成字符串实例的解码器。 |