Interfaccia IVsDataSourceSpecializer
Consente di rendere specifico le implementazioni del provider di DDEX di supporto per le origini dati specifiche basate su una stringa di connessione dati.
Spazio dei nomi: Microsoft.VisualStudio.Data.Core
Assembly: Microsoft.VisualStudio.Data.Core (in Microsoft.VisualStudio.Data.Core.dll)
Sintassi
'Dichiarazione
Public Interface IVsDataSourceSpecializer
public interface IVsDataSourceSpecializer
public interface class IVsDataSourceSpecializer
type IVsDataSourceSpecializer = interface end
public interface IVsDataSourceSpecializer
Il tipo IVsDataSourceSpecializer espone i seguenti membri.
Metodi
Nome | Descrizione | |
---|---|---|
![]() |
CreateObject | Crea un'istanza dell'entità specificata di supporto di DDEX implementato dal provider di DDEX per un'origine dati specifica di DDEX. |
![]() |
DeriveSource | Deriva da un'origine dati di DDEX, se possibile, da una stringa specifica della connessione dati di DDEX. |
![]() |
GetAssembly | Risolve una stringa specifica dell'assembly nella relativa rappresentazione corrispondente Assembly, per un'origine dati specifica di DDEX. |
![]() |
GetType | Risolve un nome di tipo specifico nella relativa rappresentazione corrispondente Type, per un'origine dati specifica di DDEX. |
In alto
Note
Un provider di DDEX è costituito da un set di implementazioni specifiche del supporto tecnico DDEX che possono essere utilizzate da client per richiamare il comportamento specifico per un'azione particolare e noto. Un'implementazione dell'interfaccia IVsDataProviderObjectFactory viene utilizzata per creare istanze di tali entità di supporto. Quando un provider di DDEX supporta più origini dati di DDEX, il meccanismo factory dell'oggetto provider può essere esteso per consentire le implementazioni diverse della stessa entità support l'origine dati di destinazione.
Questa entità di supporto consente questo tipo di estensione accetta un identificatore specifico di origine dati di DDEX come parametro aggiuntivo quando crea le entità di supporto. Abilita la derivazione di un'origine dati di DDEX da una stringa di connessione dati che identifica l'origine dati di destinazione, in modo da un client può inizialmente determinare l'origine dati desiderata di DDEX. Inoltre, rappresenta la risoluzione personalizzata dell'assembly e di tipo per le origini dati specifiche di DDEX che è possibile utilizzare quando si utilizzano le entità di supporto che specificano queste informazioni come stringhe.
Un provider di DDEX può implementare questa entità di supporto in modo implicito o esplicito. Un'implementazione implicita si verifica quando il provider di DDEX è il Registro di sistema basato su un'implementazione incorporata dell'interfaccia legge le varie chiavi del Registro di sistema che descrivono le diverse implementazioni di supporto per ogni origine dati. Un'implementazione esplicita si verifica quando il provider di DDEX pacchetto è basato su, oppure quando è il Registro di sistema in base a una specifica di creazione l'entità di supporto aggiunta al Registro di sistema. Il primo è Agile, i casi semplici sono supportate solo ma è più Agile. Un provider di DDEX deve decidere quale approccio da utilizzare quando si implementano specializzazione di origine dati.
Esempi
Il codice seguente viene illustrato come un provider di DDEX può implementare l'interfaccia IVsDataSourceSpecializer con il supporto per più implementazioni di un'entità standard di supporto. Viene descritta l'implementazione del metodo DeriveSource basato su un formato semplice della stringa di connessione. Utilizza l'implementazione di base dell'interfaccia definita nell'assembly del framework di DDEX.
using System;
using Microsoft.VisualStudio.Data.Core;
using Microsoft.VisualStudio.Data.Framework;
using Microsoft.VisualStudio.Data.Services.SupportEntities;
internal class MySourceSpecializer : DataSourceSpecializer
{
private static readonly Guid Source1Guid =
new Guid("A871863D-7D71-4e49-A8C5-4E959DDE7AF7");
private static readonly Guid Source2Guid =
new Guid("D79D7D55-A266-4db9-92A9-3FDBA5D6A722");
public override Guid DeriveSource(string connectionString)
{
if (connectionString.StartsWith("Source1"))
{
return Source1Guid;
}
if (connectionString.StartsWith("Source2"))
{
return Source2Guid;
}
return base.DeriveSource(connectionString);
}
public override object CreateObject(Guid source, Type objType)
{
if (objType == null)
{
throw new ArgumentNullException("objType");
}
if (objType == typeof(IVsDataConnectionProperties))
{
if (source == Source1Guid)
{
return new MySource1ConnectionProperties();
}
if (source == Source2Guid)
{
return new MySource2ConnectionProperties();
}
}
return base.CreateObject(source, objType);
}
}
internal class MySource1ConnectionProperties : DataConnectionProperties
{
}
internal class MySource2ConnectionProperties : DataConnectionProperties
{
}