Поделиться через


IVsDataSourceSpecializer - интерфейс

Предоставляет возможность специализировать реализации поставщика DDEX сущностей поддержки для конкретных источников данных, основываясь на строке подключения к данным.

Пространство имен:  Microsoft.VisualStudio.Data.Core
Сборка:  Microsoft.VisualStudio.Data.Core (в Microsoft.VisualStudio.Data.Core.dll)

Синтаксис

'Декларация
Public Interface IVsDataSourceSpecializer
public interface IVsDataSourceSpecializer
public interface class IVsDataSourceSpecializer
type IVsDataSourceSpecializer =  interface end
public interface IVsDataSourceSpecializer

Тип IVsDataSourceSpecializer предоставляет следующие члены.

Методы

  Имя Описание
Открытый метод CreateObject Создает экземпляр заданной сущности поддержки DDEX, которая реализуется поставщиком DDEX для источника данных DDEX.
Открытый метод DeriveSource Производный источник данных DDEX, когда возможно, из строки подключения к данным поставщик- определенной DDEX.
Открытый метод GetAssembly Разрешает строка определенной сборки поставщик- к соответствующему представлению Assembly для источника данных DDEX.
Открытый метод GetType Разрешает имя типа поставщик- конкретных к соответствующему представлению Type для источника данных DDEX.

В начало страницы

Заметки

Поставщик DDEX состоит из набора сущностей, поддержки конкретных реализаций DDEX, которые могут использоваться клиентами для вызова расширения функциональности поставщик-, определенного для определенной известной действия.Реализация интерфейса IVsDataProviderObjectFactory используется для создания экземпляров этих сущностей.Когда поставщик DDEX будет поддерживать несколько источников данных DDEX поставщик механизма фабрики объектов могут быть расширены для поддержки различных реализаций той же сущности в зависимости от поддержки целевой платформы источника данных.

Эта сущность поддержки включает этот тип расширения, принимая идентификатор источника данных DDEX как дополнительный параметр, чтобы создать сущности поддержки.Она также включает выход источника данных DDEX из строки подключения к данным, которая указывает источник данных целевого объекта, что клиент может определить первоначальный источник данных, предназначенный DDEX.Кроме того, она представляет разрешение пользовательского типа и сборки для конкретных источников данных DDEX, которые можно использовать при работе с объектами поддержки, определяющих эту информацию в виде строки.

Поставщик может реализовать поддержку DDEX эта сущность явно или неявно.Неявная реализация происходит, когда поставщик на основе реестра и DDEX является встроенной реализацией интерфейса считывает различные разделы реестра, описывающие различные реализации сущности поддержки для каждого источника данных.Явная реализация происходит, когда поставщик на основе DDEX пакет или при соответствии с спецификацией реестр, как создать сущность поддержки, добавленной в реестр.Первый поворотливо; последние варианты только простые но наиболее гибкие обозреватель.Поставщик DDEX должен решить, какой подход, который следует принять при реализации специализацию источника данных.

Примеры

В следующем коде показано, как поставщик DDEX может реализовывать интерфейс IVsDataSourceSpecializer с поддержкой нескольких реализаций стандартной сущности поддержки.Он также указывает на возможную реализацию метода DeriveSource, основанный на простом формате строки соединения.Он использует базовую реализацию интерфейса, который определен в сборке платформы 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
{
}

См. также

Ссылки

Microsoft.VisualStudio.Data.Core - пространство имен