使用反映發出以發出符號資訊
更新:2007 年 11 月
反映發出允許替動態模組定義符號資訊。符號資訊可以使用預設符號寫入器介面或呼叫端指定的符號寫入器介面來定義。反映發出在 System.Diagnostics.SymbolStore 命名空間中提供便利的低階符號寫入器介面的高階抽象。
呼叫端必須表達想做的事:動態模組將藉由呼叫適當方法來定義動態模組以包含符號資訊。使用符號資訊以建立動態模組的各種選項會在定義動態模組中說明。呼叫未表明要包含符號資訊的意願所建立的動態模組的符號寫入器方法,是錯誤的。
反映發出提供下列用來發出符號資訊的方法:
與動態模組相關的符號寫入器介面,可以使用 ModuleBuilder.GetSymWriter 方法取得。
動態模組的使用者進入點 (Entry Point) 可以使用 ModuleBuilder.SetUserEntryPoint 方法來定義。使用者進入點是使用者已辨識為進入點的方法,而非主要方法之前呼叫端所產生的 Stub。
文件物件使用 ModuleBuilder.DefineDocument 方法來定義。
儲存在符號存放區的自訂屬性分別使用 ModuleBuilder.SetSymCustomAttribute、MethodBuilder.SetSymCustomAttribute 和 ConstructorBuilder.SetSymCustomAttribute 方法,為模組、方法和建構函式定義。
序列點使用 ILGenerator.MarkSequencePoint 方法來辨識。
語彙範圍 (Lexical Scope) 使用 ILGenerator.BeginScope 和 ILGenerator.EndScope 方法來定義。
方法或建構函式中的區域變數名稱可以使用 LocalBuilder.SetLocalSymInfo 方法來設定。可以選擇性地指定區域變數的語彙範圍。LocalBuilder 物件是藉由呼叫 ILGenerator.DeclareLocal 取得。