(dbgmodel.h) IDynamicKeyProviderConcept 接口

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

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

继承

IDynamicKeyProviderConcept interits from 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 原型链中) 。

要求

   
Header dbgmodel.h

另请参阅

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