Note
Access to this page requires authorization. You can try signing in or .
Access to this page requires authorization. You can try .
Document Struct
Definition
- Namespace:
- System.Reflection.Metadata
- Assembly:
- System.Reflection.Metadata.dll
- Package:
- System.Reflection.Metadata v11.0.0-preview.5.26302.115
- Source:
- Document.cs
- Source:
- Document.cs
- Source:
- Document.cs
- Source:
- Document.cs
- Source:
- Document.cs
- Source:
- Document.cs
- Source:
- Document.cs
Important
Some information relates to prerelease product that may be substantially modified before itβs released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
The source document in the debug metadata.
public value class Document
public readonly struct Document
public struct Document
type Document = struct
Public Structure Document
- Inheritance
Examples
This example shows how to display information about source documents in the Portable PDB file:
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();
}
}
Remarks
For more information, see Portable PDB v1.0: Format Specification.
Properties
| Name | Description |
|---|---|
| Hash |
Gets the document content hash. |
| HashAlgorithm |
Gets the hash algorithm used to calculate the Hash (for example, SHA-1 or SHA-256). |
| Language |
Gets the source code language (C#, VB, F#, etc.). |
| Name |
Gets the document name blob. |
Applies to
Feedback
Was this page helpful?
