SequencePoint 结构 
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
表示可移植 PDB 序列点。
public value class SequencePoint : IEquatable<System::Reflection::Metadata::SequencePoint>
	public readonly struct SequencePoint : IEquatable<System.Reflection.Metadata.SequencePoint>
	public struct SequencePoint : IEquatable<System.Reflection.Metadata.SequencePoint>
	type SequencePoint = struct
	Public Structure SequencePoint
Implements IEquatable(Of SequencePoint)
		- 继承
 
- 实现
 
示例
此示例演示如何读取元数据标记定义的 方法的序列点并显示其源行映射:
public static void ReadSourceLineData(string pdbPath, int methodToken)
{
    // Determine method row number
    EntityHandle ehMethod = MetadataTokens.EntityHandle(methodToken);
    if (ehMethod.Kind != HandleKind.MethodDefinition)
    {
        Console.WriteLine($"Invalid token kind: {ehMethod.Kind}");
        return;
    }
    int rowNumber = MetadataTokens.GetRowNumber(ehMethod);
    // MethodDebugInformation table is indexed by same row numbers as MethodDefinition table
    MethodDebugInformationHandle hDebug = MetadataTokens.MethodDebugInformationHandle(rowNumber);
    // 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();
    if (rowNumber > reader.MethodDebugInformation.Count)
    {
        Console.WriteLine("Error: Method row number is out of range");
        return;
    }
    // Print source line information as console table
    MethodDebugInformation di = reader.GetMethodDebugInformation(hDebug);
    Console.WriteLine("IL offset | Start line | Start col. | End line | End col. |");
    foreach (SequencePoint sp in di.GetSequencePoints())
    {
        if (sp.IsHidden)
        {
            Console.WriteLine($"{sp.Offset.ToString().PadLeft(9)} | (hidden sequence point)");
        }
        else
        {
            Console.WriteLine("{0} |{1} |{2} |{3} |{4} |", 
                sp.Offset.ToString().PadLeft(9), 
                sp.StartLine.ToString().PadLeft(11),
                sp.StartColumn.ToString().PadLeft(11),
                sp.EndLine.ToString().PadLeft(9),
                sp.EndColumn.ToString().PadLeft(9));
        }
    }
}
	注解
序列点是一种结构,它包含 IL 偏移量与编译此 IL 的源文档中对应的行号和列号之间的映射。 序列点存储在 MethodDebugInformation 可移植 PDB 调试符号表中。 有关详细信息,请参阅可移植 PDB v1.0:格式规范。
字段
| HiddenLine | 
		 指定隐藏序列点的行号值。  | 
        	
属性
| Document | 
		 获取包含此序列点的源文档。  | 
        	
| EndColumn | 
		 获取此序列点中最后一个字符的列号。  | 
        	
| EndLine | 
		 获取此序列点中最后一个字符的行号。  | 
        	
| IsHidden | 
		 获取一个值,该值指示此序列点是否隐藏。  | 
        	
| Offset | 
		 获取此序列点从方法主体开头的 IL 偏移量(以字节为单位)。  | 
        	
| StartColumn | 
		 获取此序列点中第一个字符的列号。  | 
        	
| StartLine | 
		 获取此序列点中第一个字符的行号。  | 
        	
方法
| Equals(Object) | 
		 指示当前序列点是否等于指定的对象。  | 
        	
| Equals(SequencePoint) | 
		 指示当前对象是否等于同一类型的另一个对象。  | 
        	
| GetHashCode() | 
		 获取此序列点的哈希代码。  |