Registrare un provider Basato su pacchetto di DDEX
Il metodo più comune per implementare un provider di DDEX utilizza un package VS, fornire supporto in fase di progettazione più affidabile e flessibile. L'utilizzo di questa implementazione, il provider di DDEX crea oggetti e tipi e assembly di risoluzioni tramite i servizi di Visual Studio che il provider di DDEX identifica il registro di sistema di Windows.
registrare il provider
Per registrare all'implementazione del provider basata su pacchetto, effettuare le operazioni seguenti:
1.Genera un GUID del provider di DDEX
Un GUID fornisce un identificatore univoco per il provider nel contesto dell'applicazione.
2.Aggiungere il GUID della chiave del Registro di sistema
Immettere il provider GUID nella chiave di DataProviders dell'hive del Registro di sistema locale dell'applicazione. Questa voce potrebbe essere simile al seguente:
\SOFTWARE\Microsoft\VisualStudio\9.0\DataProviders HKLM \ {} 11111111-1111-1111-1111-111111111111
3.Aggiungere valori alla chiave
Aggiungere i valori appropriati del provider di DDEX della chiave del Registro di sistema di DataProviders. la chiave contiene sette campi, come segue:
(Valore predefinito) |
Il nome del provider allo scopo di identificazione nel Registro di sistema, ad esempio, “provider di dati SQL Server„ questo valore non viene interpretato, presupponendo che un nome visualizzato si trova. |
AssociatedSource |
Il GUID dell'origine dati che questo provider di DDEX è associato. |
Descrizione |
Puntatore all'ID di risorsa a una stringa in un assembly che rappresenta una descrizione per il provider, nel formato “StringName, ResourceName, assembly„. Se il valore dell'assembly non è specificato, le impostazioni predefinite di implementazione assembly sono specificati per il valore di codebase. |
DisplayName |
Puntatore all'ID di risorsa a una stringa in un assembly che rappresenta un nome visualizzato del provider, nel formato “StringName, ResourceName, assembly„. Se il valore dell'assembly non è specificato, le impostazioni predefinite di implementazione assembly sono specificati per il valore di codebase. Questo valore può essere un ID di risorsa nella DLL satellite del provider. |
FactoryService |
Un GUID che specifica il servizio ID (SID) di Visual Studio esposto dal package VS del provider di DDEX che implementa l'interfaccia di IVsDataProviderObjectFactory. Questa operazione deve essere registrata come servizio standard di Visual Studio , in modo dallo stesso SID deve essere specificato sotto la chiave del Registro di sistema di servizi. |
InvariantName |
Il nome invariante di un provider di ADO.NET . Specificare questo valore solo se la tecnologia sottostante è ADO.NETe alcune funzionalità è in base all'implementazione di base ottenuta dallo spazio dei nomi di Microsoft.VisualStudio.Data.Framework.AdoDotNet . Queste implementazioni base si basano sulla possibilità di individuare il nome invariante per il provider di ADO.NET per creare gli oggetti tramite la classe di DbProviderFactory . |
PlatformVersion |
La versione del componente di DDEX utilizzata. Utilizzare “2,0 " per Visual Studio 2008 SDK, o “1,0 " per Visual Studio 2005 SDK. |
ShortDisplayName |
Puntatore all'ID di risorsa a una stringa in un assembly che rappresenta un breve nome visualizzato del provider, nel formato “StringName, ResourceName, assembly„. Se il valore dell'assembly non è specificato, le impostazioni predefinite di implementazione assembly sono specificati per il valore di codebase. |
Tecnologia |
Un GUID che specifica la tecnologia sottostante per questo provider, se disponibile. |
4.specificare gli oggetti supportati
I provider di DDEX devono specificare nel Registro di sistema che gli oggetti che supportano. Devono eseguire questa operazione per due motivi:
Il motore di DDEX nonché i client, devono essere in grado di determinare le funzionalità di un provider specificato senza la necessità di caricare l'assembly del provider.
In alcuni casi, può essere necessario che il provider fornisca informazioni su come creare un'istanza o distribuire uno o più oggetti supportati.
La chiave di SupportedObjects contiene un insieme di chiavi ID del figlio che indicano quali entità del supporto tecnico DDEX sono supportate, dal servizio factory specificato come valore di FactoryService nella chiave di DataProviders, o come servizio nella classe di DataConnection. Essenzialmente questo include tutti gli oggetti che siano creabili direttamente utilizzando il metodo di CreateObject e di tutti gli oggetti che possono essere forniti come servizi implementazione di ServiceProvider di DataConnectionSupport .
Per indicare gli oggetti supportati, effettuare le operazioni seguenti:
Aggiungere una chiave di SupportedObjects nel provider di DDEX nel Registro di sistema.
Nella chiave di SupportedObjects, aggiungere le chiavi per gli oggetti supportati dal provider. Seguente esempi di oggetti che è possibile supportare:
IVsDataConnectionPromptDialog
IVsDataConnectionProperties
IVsDataConnectionSupport
IVsDataConnectionUIControl
IVsDataObjectIdentifierConverter
IVsDataObjectIdentifierResolver
IVsDataObjectMemberComparer
IVsDataObjectSupport
IVsDataSourceInformation
IVsDataViewSupport
In genere, nessuna informazione in queste chiavi viene interpretata (sebbene per OLE DB e ODBC vi sia una determinata interpretazione), ma è utile impostare il valore predefinito della chiave con il nome dell'interfaccia.
5.Mapping a un'origine dati
I provider di DDEX possono essere associati a origini dati di DDEX utilizzando le voci del Registro di sistema sotto di oggetti datasource digitare gli hive del Registro di sistema locale dell'applicazione, ad esempio, HKLM \SOFTWARE\Microsoft\VisualStudio\9.0\DataSources.
Ogni origine dati di DDEX ha un GUID di identificazione, con il nome visualizzato corrispondente e stringhe descrittive forniti da un provider di supporto.
Per una nuova origine dati, è necessario effettuare quanto segue:
Creare un identificatore di GUID per l'origine dati e posizionarlo nel Registro di sistema sotto di oggetti datasource.
Aggiungere un valore di DefaultProvider a questa chiave, il cui valore è il GUID del provider di impostazione predefinita DDEX per l'origine dati.
Sotto di oggetti datasource impostare, creare una chiave di SupportingProviders e popolarla con una sottochiave per ciascun provider di DDEX che supporta l'origine dati.
Per uno o più (minimo uno) delle sottochiavi del provider di DDEX, fornire un valore DisplayName con precisione lo stesso formato quale è stato fornito per il valore DisplayName nella chiave corrispondente del provider di DDEX.
Per ciascun provider di supporto, fornire un valore di descrizione nello stesso formato secondo quanto indicato del valore di descrizione per il provider corrispondente di DDEX. Questa stringa descrittiva combina l'origine dati selezionata e il provider di dati in un singolo, istruzione significativo, ad esempio, “utilizza questa opzione per connettersi a un'origine dati Microsoft Access un database di origine utilizzando il provider nativo di jet tramite il provider di dati di .NET Framework per OLE DB.„
Esempio
Nell'esempio vengono fornite le voci del Registro di sistema per il provider di dati di IBM DB2 registrato nell'ID di Visual Studio (posto che %REGROOTBEGIN% è uguale al \Microsoft\VisualStudio SOFTWARE \ 9,0):
HKLM
{
%REGROOTBEGIN%
'DataProviders'
{
'{6085DDE2-2EE1-4768-82C3-5425D9B98DAD}' = s 'IBM DB2 Provider'
{
val 'DisplayName' = s 'Provider_DisplayName, IBM.DB2.Resources'
val 'ShortDisplayName' = s 'Provider_ShortDisplayName, IBM.DB2.Resources'
val 'Description' = s 'Provider_Description, IBM.DB2.Resources'
val 'FactoryService'= s'{45E1413D-896C-4a2a-A75C-1CBCA51C80CB}'
val 'Technology' = s '{6565551F-A496-45f3-AFFB-D1AECA082824}'
val 'InvariantName' = s 'IBM.DB2'
val 'PlatformVersion' = s '2.0'
'SupportedObjects'
{
'IVsDataViewSupport'
'IVsDataObjectSupport'
'IVsDataConnectionUIControl'
'IVsDataConnectionProperties'
'IVsDataConnectionSupport'
}
}
}
'Services'
{
'{45E1413D-896C-4a2a-A75C-1CBCA51C80CB}' = s '{7B7F1923-D8F9-430f-9FA7-7919677E5EAC}'
{
val 'Name' = 'IBM DB2 Provider Object Factory'
}
}
'Packages'
{
'{7B7F1923-D8F9-430f-9FA7-7919677E5EAC}' = 'DB2 Package'
{
val 'InProcServer32' = s 'mscoree.dll'
val 'Class' = s 'IBM.DB2.DB2Package'
val 'Codebase' = s '%MODULE%'
'SatelliteDll'
{
val 'Path' = s '%PATH%'
val 'DllName' = s 'IBM.DB2UI.DLL'
}
}
%REGROOTEND%
}