Freigeben über


IDynamicKeyProviderConcept-Schnittstelle (dbgmodel.h)

Wenn ein Client die Speicherung von Schlüsseln und Werten für ein Objekt übernehmen möchte, kann er diese Konzeptschnittstelle implementieren.

Das Objekt ist ein dynamischer Schlüsselanbieter und möchte alle Schlüsselabfragen aus dem Kerndatenmodell übernehmen. Diese Schnittstelle wird in der Regel als Brücke zu dynamischen Sprachen wie JavaScript verwendet.

Erbschaft

IDynamicKeyProviderConcept erbt von IUnknown.

Methodik

Die IDynamicKeyProviderConcept Schnittstelle hat diese Methoden.

 
IDynamicKeyProviderConcept::AddRef

Die IDynamicKeyProviderConcept::AddRef-Methode erhöht die Verweisanzahl für eine Schnittstelle in einem Objekt.
IDynamicKeyProviderConcept::EnumerateKeys

Die EnumerateKeys-Methode für einen dynamischen Schlüsselanbieter ist effektiv eine Außerkraftsetzung der EnumerateKeys-Methode auf IModelObject.
IDynamicKeyProviderConcept::GetKey

Die GetKey-Methode für einen dynamischen Schlüsselanbieter ist weitgehend eine Außerkraftsetzung der GetKey-Methode für IModelObject.
IDynamicKeyProviderConcept::QueryInterface

Die IDynamicKeyProviderConcept::QueryInterface-Methode ruft Zeiger auf die unterstützten Schnittstellen für ein Objekt ab.
IDynamicKeyProviderConcept::Release

Die IDynamicKeyProviderConcept::Release-Methode erhöht die Referenzanzahl für eine Schnittstelle eines Objekts.
IDynamicKeyProviderConcept::SetKey

Die SetKey-Methode für einen dynamischen Schlüsselanbieter ist effektiv eine Außerkraftsetzung der SetKey-Methode für IModelObject.

Bemerkungen

Konzepte für dynamische Anbieter

Während das Datenmodell selbst normalerweise die Schlüssel- und Konzeptverwaltung für Objekte verarbeitet, gibt es Zeiten, in denen dieser Begriff weniger als ideal ist. Insbesondere, wenn ein Kunde eine Brücke zwischen dem Datenmodell und etwas anderes erstellen möchte, das wirklich dynamisch ist (z. B. JavaScript), kann es hilfreich sein, die Schlüssel- und Konzeptverwaltung von der Implementierung im Datenmodell zu übernehmen. Da das Kerndatenmodell die einzige Implementierung von IModelObjectist, erfolgt dies stattdessen über eine Kombination aus zwei Konzepten: dem dynamischen Schlüsselanbieterkonzept und dem Konzept des dynamischen Konzepts des Anbieters. Obwohl es typisch wäre, beide oder keines zu implementieren, besteht keine Anforderung dafür.

Wenn beide implementiert werden, muss das dynamische Schlüsselanbieterkonzept vor dem Konzept des dynamischen Konzeptanbieters hinzugefügt werden. Beide Konzepte sind besonders. Sie kippen effektiv einen Schalter auf dem Objekt, der ihn von "statisch verwaltet" in "dynamisch verwaltet" ändert. Diese Konzepte können nur festgelegt werden, wenn es keine Schlüssel/Konzepte gibt, die vom Datenmodell für das Objekt verwaltet werden. Sobald diese Konzepte zu einem Objekt hinzugefügt werden, ist die Aktion dieser Aktion unwiderruflich. Es gibt einen zusätzlichen semantischen Unterschied bei der Erweiterbarkeit zwischen einem IModelObject, bei dem es sich um einen dynamischen Konzeptanbieter handelt und das nicht. Diese Konzepte sollen Es Clients ermöglichen, Brücken zwischen dem Datenmodell und dynamischen Sprachsystemen wie JavaScript zu erstellen. Das Datenmodell hat ein Konzept der Erweiterbarkeit, das sich grundlegend von Systemen wie JavaScript unterscheidet, da es eine Struktur von übergeordneten Modellen anstelle einer linearen Kette wie der JavaScript-Prototypkette gibt. Um eine bessere Beziehung zu solchen Systemen zu ermöglichen, verfügt ein IModelObject, bei dem es sich um einen dynamischen Konzeptanbieter handelt, über ein einzelnes übergeordnetes Datenmodell verfügt. Dieses übergeordnete Einzelne Datenmodell ist eine normale IModelObject-, die eine beliebige Anzahl von übergeordneten Modellen aufweisen kann, wie für das Datenmodell typisch ist. Alle Anforderungen an den dynamischen Konzeptanbieter zum Hinzufügen oder Entfernen von Eltern werden automatisch an das einzelne Elternteil umgeleitet. Aus Außensicht sieht es so aus, als ob der dynamische Konzeptanbieter über eine normale Strukturstilkette von übergeordneten Modellen verfügt. Der Implementierer des Konzepts des dynamischen Konzeptanbieters ist das einzige Objekt (außerhalb des Kerndatenmodells), das sich der übergeordneten Zwischenstufe bewusst ist. Dieses einzelne übergeordnete Element kann mit dem dynamischen Sprachsystem verknüpft werden, um eine Brücke bereitzustellen (z. B. in die JavaScript-Prototypkette platziert).

Anforderungen

Anforderung Wert
Header- dbgmodel.h

Siehe auch

Debuggerdatenmodell C++-Übersicht