Document Struktura
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Dokument źródłowy w metadanych debugowania.
public value class Document
public readonly struct Document
public struct Document
type Document = struct
Public Structure Document
- Dziedziczenie
Przykłady
W tym przykładzie pokazano, jak wyświetlić informacje o dokumentach źródłowych w przenośnym pliku 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();
}
}
Uwagi
Aby uzyskać więcej informacji, zobacz Portable PDB v1.0: Format Specification (Przenośna wersja PDB w wersji 1.0: specyfikacja formatu).
Właściwości
Hash |
Pobiera skrót zawartości dokumentu. |
HashAlgorithm |
Pobiera algorytm wyznaczania wartości skrótu Hash używany do obliczania (SHA1, SHA256 itp.). |
Language |
Pobiera język kodu źródłowego (C#, VB, F#itp.). |
Name |
Pobiera obiekt blob nazwy dokumentu. |