Document 结构
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
调试元数据中的源文档。
public value class Documentpublic readonly struct Documentpublic struct Documenttype Document = structPublic Structure Document- 继承
示例
此示例演示如何在可移植 PDB 文件中显示有关源文档的信息:
static string ReadDocumentPath(MetadataReader reader, Document doc)
{
    BlobReader blob = reader.GetBlobReader(doc.Name);
    // Read path separator character
    var separator = (char)blob.ReadByte();
    var sb = new StringBuilder(blob.Length * 2);
    // Read path segments
    while (true)
    {
        BlobHandle bh = blob.ReadBlobHandle();
        if (!bh.IsNil)
        {
            byte[] nameBytes = reader.GetBlobBytes(bh);
            sb.Append(Encoding.UTF8.GetString(nameBytes));
        }
        if (blob.Offset >= blob.Length) break;
        sb.Append(separator);
    }
    return sb.ToString();
}
public static void ReadPdbDocuments(string pdbPath)
{
    // Open Portable PDB file
    using var fs = new FileStream(pdbPath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
    using MetadataReaderProvider provider = MetadataReaderProvider.FromPortablePdbStream(fs);
    
    MetadataReader reader = provider.GetMetadataReader();
    // Display information about documents in each MethodDebugInformation table entry
    foreach (MethodDebugInformationHandle h in reader.MethodDebugInformation)
    {
        MethodDebugInformation mdi = reader.GetMethodDebugInformation(h);
        if (mdi.Document.IsNil) continue;
        int token = MetadataTokens.GetToken(h);
        Console.WriteLine($"MethodDebugInformation 0x{token.ToString("X")}");
        Document doc = reader.GetDocument(mdi.Document);
        Console.WriteLine($"File: {ReadDocumentPath(reader, doc)}");
        Guid guidLang = reader.GetGuid(doc.Language);
        Console.WriteLine($"Language: {guidLang}");
        Guid guidHashAlg = reader.GetGuid(doc.HashAlgorithm);
        Console.WriteLine($"Hash algorithm: {guidHashAlg}");
        Console.WriteLine();
    }
}
注解
有关详细信息,请参阅可移植 PDB v1.0:格式规范。
属性
| Hash | 获取文档内容哈希。 | 
| HashAlgorithm | 获取用于计算 Hash(SHA1、SHA256 等)的哈希算法。 | 
| Language | 获取源代码语言(C#、VB、F# 等)。 | 
| Name | 获取文档名称 blob。 |