IDynamicKeyProviderConcept 接口 (dbgmodel.h)

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

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

遗产

IDynamicKeyProviderConcept 继承自 IUnknown。

方法

IDynamicKeyProviderConcept 接口具有这些方法。

 
IDynamicKeyProviderConcept::AddRef

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

动态密钥提供程序上的 EnumerateKeys 方法实际上是 IModelObject 上的 EnumerateKeys 方法的替代。
IDynamicKeyProviderConcept::GetKey

动态密钥提供程序上的 GetKey 方法基本上是 IModelObject 上的 GetKey 方法的替代。
IDynamicKeyProviderConcept::QueryInterface

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

IDynamicKeyProviderConcept::Release 方法会减少对象上接口的引用计数。
IDynamicKeyProviderConcept::SetKey

动态密钥提供程序上的 SetKey 方法实际上是 IModelObject 上的 SetKey 方法的替代。

言论

动态提供程序概念

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

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

要求

要求 价值
标头 dbgmodel.h

另请参阅

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