共用方式為


IModelObject2 介面 (dbgmodel.h)

IModelObject2 介面會封裝物件的概念-- 該物件是否為整數、字串、調試程式目標地址空間中的一些複雜類型。

這個第 2 版的 介面支援所有具有相同簽章的先前方法,並包含其他提供新增功能的新方法。 新方法會列在該介面區段結尾的標頭中。

遺產

IModelObject2 繼承自 IModelObject。

言論

數據模型最基本但最強大的內容之一是,它會標準化對象的定義,以及對象與對象互動的方式。 IModelObject 介面會封裝物件的概念-- 不論該對像是整數、浮點值、字串、調試程式目標地址空間中的某些複雜型別,或是一些調試程式概念,例如進程或模組的概念。

IModelObject 中可以保留數個不同的專案:(或 Boxed 到) 中:

• 內建值 - IModelObject 可以是許多基本類型的容器:8、16、32 或 64 位帶正負號或無符號整數、布爾值、字串、錯誤或空白的概念。

• 原生物件 - IModelObject 可以在除錯程式的位址空間內代表複雜類型(如除錯程式的類型系統所定義)

• 綜合物件 - IModelObject 可以是動態物件 ,如果您將會是字典:索引鍵/值/元數據元組的集合,以及一組概念,這些概念定義不只以索引鍵/值組表示的行為。

• 屬性 - IModelObject 可以代表屬性:可以使用方法呼叫來擷取或改變其值的專案。 IModelObject 內的屬性實際上是一個 IModelPropertyAccessor 介面,並分成 IModelObject

• 方法 - IModelObject 可以代表方法:您可以使用一組自變數呼叫的專案,並取得傳回值。 IModelObject 內的方法實際上是將 IModelMethod 介面 boxed 到 IModelObject 中的 IModelMethod

IModelObject 不是隔離的物件。 除了代表上述其中一種物件類型之外,每個物件都有父數據模型鏈結的概念。 此鏈結的行為非常類似 |JavaScript 原型鏈結。 每個數據模型物件會定義父模型的線性鏈結,而不是 JavaScript 等原型的線性鏈結。 每個父模型都會有另一個自己的父系線性鏈結。 基本上,每個物件都是本身和這個樹狀結構中每個物件的功能(屬性等...)匯總。 查詢特定屬性時,如果查詢的物件不支援該屬性,查詢會依線性順序傳遞至每個父系。 這會建立行為,其中搜尋屬性會透過匯總樹狀結構的深度優先搜尋來解析。

這個物件模型中的擴充性非常簡單,因為這個概念是每個物件都是本身的匯總和父模型的樹狀結構。 延伸模組可以傳入並新增至另一個物件的父模型清單。 這樣做會擴充 物件。 如此一來,就可以將功能新增至任何專案:物件或值的特定實例、原生類型、調試程式的程式或線程概念,甚至是「所有可反覆運算的物件」的概念。

要求

要求 價值
標頭 dbgmodel.h

另請參閱

調試程序數據模型C++介面概觀