Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Il metodo RegisterNamedModel registra un determinato modello di dati con un nome noto in modo che possa essere trovato dai client che desiderano estenderlo. Questo è lo scopo principale dell'API: pubblicare un modello di dati come qualcosa che può essere esteso recuperando il modello registrato con questo nome noto e aggiungendo un modello padre. Anche se la stringa passata nell'argomento modelName può essere qualsiasi elemento (si tratta solo di un nome), esiste una convenzione che assomiglia a uno spazio dei nomi delimitato da punti del formato seguente:
• 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 esempio di tale nome è Debugger.Models.Process. Si tratta del nome con cui viene registrata la nozione del debugger di un processo. Un client che estende il processo e se stesso è estendibile può registrare il punto di estendibilità come Debugger.Models.Process.NamedExtensionPoint in cui NamedExtensionPoint fa riferimento alla semantica da aggiungere al processo.
Si noti che se un determinato modello di dati viene registrato con un nome, l'implementazione di IDataModelConcept per tale modello di dati deve avere un metodo GetName che restituisce il nome registrato chiamando questo metodo RegisterNamedModel.
Sintassi
HRESULT RegisterNamedModel(
PCWSTR modelName,
IModelObject *modeObject
);
Parametri
modelName
Lo spazio dei nomi radice del modello di dati viene restituito qui.
modeObject
Modello di dati registrato.
Valore restituito
Questo metodo restituisce HRESULT che indica l'esito positivo o negativo.
Osservazioni
codice di esempio
ComPtr<IDataModelManager2> 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
}
}
dell'interfaccia IDataModelManager2
Fabbisogno
| Requisito | Valore |
|---|---|
| intestazione | dbgmodel.h |