主要的運算式評估工具介面
重要
在 Visual Studio 2015 中,已取代這種實作運算式評估工具的方式。 如需實作 CLR 運算式評估工具的相關資訊,請參閱 CLR 運算式評估工具和受控運算式評估工具範例。
編寫運算式評估工具 (EE),以及評估內容時,應該熟悉以下介面。
介面描述
-
具有單一方法 GetAddress,它會取得表示目前執行點的資料結構。 此資料結構是偵錯引擎 (DE) 傳遞給 EvaluateSync 方法的三個引數之其中一個,以評估運算式。 這個介面通常是由符號提供者實作。
-
具有 Bind 方法,可取得包含符號目前值的記憶體區域。 假設包含的方法 (由 IDebugObject 物件表示) 以及符號本身 (由 IDebugField 物件表示),
IDebugBinder::Bind
會傳回符號的值。IDebugBinder
通常是由 DE 實作。 -
表示簡單的資料類型。 對於更複雜的類型 (例如:陣列和方法),請分別使用衍生的 IDebugArrayField 和 IDebugMethodField 介面。 IDebugContainerField 是另一個重要的衍生介面,表示包含其他符號 (例如:方法或類別) 的符號。
IDebugField
介面 (及其衍生專案項目) 通常是由符號提供者實作。IDebugField
物件可用來尋找符號的名稱和類型,以及 IDebugBinder 物件,可用來尋找其值。 -
表示符號執行階段值的實際位元。 Bind 採用表示符號的 IDebugField 物件,並傳回 IDebugObject 物件。 GetValue 方法傳回記憶體緩衝區中符號的值。 DE 通常實作這個介面來表示記憶體中屬性的值。
-
這個介面表示運算式評估工具本身。 重要方法是 Parse,它會傳回 IDebugParsedExpression 介面。
-
這個介面表示已剖析的運算式,隨時可供評估。 重要方法是 EvaluateSync,它傳回表示運算式值和類型的 IDebugProperty2。
-
這個介面表示值及其類型,而且是運算式評估的結果。