Método IDataModelManager3::RegisterNamedModel (dbgmodel.h)
El método RegisterNamedModel registra un modelo de datos determinado bajo un nombre conocido para que los clientes que deseen ampliarlo puedan encontrarlo. Este es el propósito principal de la API: para publicar un modelo de datos como algo que se puede ampliar recuperando el modelo registrado bajo este nombre conocido y agregando un modelo primario. Aunque la cadena pasada en el argumento modelName puede ser cualquier cosa (es solo un nombre), hay una convención que parece un espacio de nombres separado por puntos del siguiente formato:
• Debugger.Models.* - Data models which pertain to the debug target.
• DataModel.Models.* - Data models which pertain to the core data model itself.
o DataModel.Models.Concepts.* - Data models which pertain to concepts in the data model.
Un ejemplo de este nombre es Debugger.Models.Process. Este es el nombre en el que se registra la noción del depurador de un proceso. Un cliente que extiende el proceso y en sí mismo es extensible puede registrar su punto de extensibilidad como Debugger.Models.Process.NamedExtensionPoint donde NamedExtensionPoint hace referencia a la semántica que se agrega al proceso.
Tenga en cuenta que si un modelo de datos determinado está registrado bajo un nombre, la implementación de IDataModelConcept para ese modelo de datos debe tener un método GetName que devuelva el nombre registrado mediante una llamada a este método RegisterNamedModel.
Sintaxis
HRESULT RegisterNamedModel(
PCWSTR modelName,
IModelObject *modeObject
);
Parámetros
modelName
Aquí se devuelve el espacio de nombres raíz del modelo de datos.
modeObject
Modelo de datos que se está registrando.
Valor devuelto
Este método devuelve HRESULT que indica éxito o error.
Observaciones
de código de ejemplo
ComPtr<IDataModelManager3> spManager; /* get the data model manager */
ComPtr<IModelObject> spDataModelObject; /* get your data model object (see
CreateDataModelObject) */
// If the model is registered under a name (e.g.:
// Debugger.Models.Process.PrivateProcessExtension as below), the
// IDataModelConcept::GetName method must return one of the registration
// names (the one the extension considers "canonical"). It is legal for an
// object to be registered under multiple names.
if (SUCCEEDED(spManager->RegisterNamedModel(
L"Debugger.Models.Process.PrivateProcessExtension",
spDataModelObject.Get()))
)
{
// The model object spDataModelObject is now registered and can be looked up
// under the name "Debugger.Models.Process.PrivateProcessExtension".
// This means others can extend it by fetching that name.
//
// Fetch it back as example:
ComPtr<IModelObject> spFetchedModel;
if (SUCCEEDED(spManager->AcquireNamedModel(
L"Debugger.Models.Process.PrivateProcessExtension",
&spFetchedModel))
)
{
// spFetchedModel should be the same as spDataModelObject
}
}
Requisitos
Requisito | Valor |
---|---|
encabezado de |
dbgmodel.h |
Consulte también
de interfaz IDataModelManager3 de