IDynamicConceptProviderConcept 接口 (dbgmodel.h)

如果客户端想要接管对象的密钥和值的存储,它可以实现此概念接口。

对象是密钥的动态提供程序,希望从核心数据模型接管所有键查询。 此接口通常用作动态语言(如 JavaScript)的桥梁。

继承

IDynamicConceptProviderConcept 从 IUnknown 进行插接。

方法

IDynamicConceptProviderConcept 接口具有以下方法。

 
IDynamicConceptProviderConcept::AddRef

IDynamicConceptProviderConcept::AddRef 方法递增对象上接口的引用计数。
IDynamicConceptProviderConcept::GetConcept

动态概念提供程序上的 GetConcept 方法实际上是 IModelObject 上 GetConcept 方法的替代。
IDynamicConceptProviderConcept::NotifyDestruct

动态概念提供程序上的 NotifyDestruct 方法是核心数据模型在销毁对象(动态概念提供程序)开始时进行的回调。
IDynamicConceptProviderConcept::NotifyParent

核心数据模型使用 NotifyParent 调用来通知动态提供程序单个父模型,该模型是为允许桥接“多父模型”范例而创建的。
IDynamicConceptProviderConcept::NotifyParentChange

动态概念提供程序上的 NotifyParent 方法是在对对象的单一父模型进行静态操作时由核心数据模型进行的回调。
IDynamicConceptProviderConcept::QueryInterface

IDynamicConceptProviderConcept::QueryInterface 方法检索指向对象上支持的接口的指针。
IDynamicConceptProviderConcept::Release

IDynamicConceptProviderConcept::Release 方法递减对象上接口的引用计数。
IDynamicConceptProviderConcept::SetConcept

动态概念提供程序上的 SetConcept 方法实际上是 IModelObject 上 SetConcept 方法的替代。

注解

动态提供程序概念

虽然数据模型本身通常处理对象的键和概念管理,但有时这种概念并不理想。 特别是,当客户端希望在数据模型和其他真正动态 ((例如 JavaScript) )之间创建桥梁时,从数据模型中的实现中接管关键和概念管理可能很有价值。 由于核心数据模型是 IModelObject 的唯一实现,而是通过以下两个概念的组合实现:动态密钥提供程序概念和动态概念提供程序概念。 虽然通常同时实现或两者都不实现,但不需要这样做。

如果两者都实现了,则必须在动态概念提供程序概念之前添加动态密钥提供程序概念。 这两个概念都很特殊。 它们有效地翻转对象上的开关,将其从“静态管理”更改为“动态管理”。 仅当对象上没有由数据模型管理的键/概念时,才能设置这些概念。 将这些概念添加到 对象后,执行此操作的操作是不可撤销的。 IModelObject 与不是动态概念提供程序的 IModelObject 之间在扩展性方面还有其他语义差异。 这些概念旨在允许客户端在数据模型和动态语言系统(如 JavaScript)之间创建桥梁。 数据模型的扩展性概念与 JavaScript 等系统有一些根本区别,即存在父模型树,而不是 JavaScript 原型链之类的线性链。 为了与此类系统建立更好的关系,作为动态概念提供程序的 IModelObject 具有单个数据模型父级。 该单个数据模型父模型是一个普通 的 IModelObject ,它可以具有任意数量的父模型,就像数据模型的典型一样。 向动态概念提供程序添加或移除父级的任何请求都会自动重定向到单个父级。 从局外人的角度来看,动态概念提供程序似乎具有父模型的普通树样式链。 动态概念提供程序概念的实现者是核心数据模型) 之外的唯一对象 (,该对象可识别中间的单一父级。 该单一父级可与动态语言系统链接,以提供桥接 (例如:放置在 JavaScript 原型链) 中。

要求

要求
Header dbgmodel.h

另请参阅

调试器数据模型 C++ 概述