IVsDataSourceSpecializer – rozhraní
Poskytuje možnost specialize DDEX implementace zprostředkovatele podporu subjektů pro konkrétní datových zdrojů založených na připojovací řetězec data.
Obor názvů: Microsoft.VisualStudio.Data.Core
Sestavení: Microsoft.VisualStudio.Data.Core (v Microsoft.VisualStudio.Data.Core.dll)
Syntaxe
'Deklarace
Public Interface IVsDataSourceSpecializer
public interface IVsDataSourceSpecializer
public interface class IVsDataSourceSpecializer
type IVsDataSourceSpecializer = interface end
public interface IVsDataSourceSpecializer
Typ IVsDataSourceSpecializer zveřejňuje následující členy.
Metody
Název | Popis | |
---|---|---|
![]() |
CreateObject | Vytvoří instanci zadané entity DDEX podpory, který je implementován zprostředkovatelem DDEX pro konkrétní zdroj dat DDEX. |
![]() |
DeriveSource | DDEX zdroj dat, pokud je to možné, se odvozuje z DDEX připojovací řetězec data specifická pro zprostředkovatele. |
![]() |
GetAssembly | Řeší specifické Zprostředkovatel sestavení řetězec na jeho odpovídající Assembly znázornění pro konkrétní zdroj dat DDEX. |
![]() |
GetType | Přeloží název typu zprostředkovatele k jeho odpovídající Type znázornění pro konkrétní zdroj dat DDEX. |
Nahoru
Poznámky
Zprostředkovatel DDEX obsahuje sadu konkrétní implementace DDEX podporu entity, které lze vyvolat chování poskytovatele specifické akce zejména, dobře známé klienty.Implementace IVsDataProviderObjectFactory rozhraní slouží k vytvoření instancí těchto subjektů podporovat.Při DDEX provider podporuje více zdrojů dat DDEX, mechanismus zprostředkovatele objektu výroby lze rozšířit pro různými implementacemi stejnou entitu podpory na zdroji dat. cílem.
Podpora subjektu umožňuje tento typ rozšíření přijmete zvláštní identifikátor zdroje dat DDEX jako dodatečný parametr při vytváření podpory subjektů.Umožňuje také odvození DDEX zdroje dat z dat připojovací řetězec, který identifikuje zdroj dat cíl, aby klient mohl určit původně zamýšlený zdroj dat DDEX.Navíc představuje vlastní rozlišení typu a sestavení pro konkrétní DDEX zdroje dat, které lze použít při práci s podporou subjektů, které tyto informace zadat jako řetězce.
DDEX provider může implementovat podporu subjektu implicitně nebo explicitně.Implicitní provedení dojde k DDEX provider je podle registru a vestavěné implementaci rozhraní čte různé klíče registru, které popisují entity implementace různých podpory pro každý zdroj dat.Explicitní implementace dochází při DDEX provider je balíček založené nebo je registru podle specifikace, jak vytvořit entitu podpory do registru.Je agilní; ten podporuje pouze jednoduché případy je ale většina agilní.Zprostředkovatel DDEX musíte rozhodnout, který přístup při provádění specializace zdrojová data.
Příklady
Následující kód ukazuje, jak lze implementovat zprostředkovatele DDEX IVsDataSourceSpecializer s podporou pro více implementace entity standardní podpora rozhraní.Zobrazuje také případné provádění DeriveSource metoda, která je založena na formát jednoduchého připojovacího řetězce.Používá základní implementace rozhraní, která je definována v rámci sestavení 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
{
}