次の方法で共有


IVsDataProviderObjectFactory インターフェイス

サポートのエンティティの DDEX プロバイダーの実装を作成できます。

名前空間:  Microsoft.VisualStudio.Data.Core
アセンブリ:  Microsoft.VisualStudio.Data.Core (Microsoft.VisualStudio.Data.Core.dll 内)

構文

'宣言
Public Interface IVsDataProviderObjectFactory
public interface IVsDataProviderObjectFactory
public interface class IVsDataProviderObjectFactory
type IVsDataProviderObjectFactory =  interface end
public interface IVsDataProviderObjectFactory

IVsDataProviderObjectFactory 型で公開されるメンバーは以下のとおりです。

メソッド

  名前 説明
パブリック メソッド CreateObject DDEX プロバイダーによって実装された指定 DDEX のサポートのエンティティのインスタンスを作成します。
パブリック メソッド GetAssembly Assembly の対応する表示に、プロバイダー固有のアセンブリの文字列を解決します。
パブリック メソッド GetType Type の対応する表示に、プロバイダー固有の型名を解決します。

このページのトップへ

解説

DDEX プロバイダーは、個々、既知のアクションのプロバイダー固有の動作を呼び出すためにクライアントで使用できる DDEX のサポートのエンティティの特定の実装で構成されます。 トップ レベルで基本 DDEX のサポートのエンティティはエンティティの他の型を生成する可能性がある XML コンテンツなどのインターフェイスで表されます。 このインターフェイスは、すべてのグローバル DDEX のサポートのエンティティのファクトリを表し、すべての DDEX プロバイダーが実装する必要があります。 また、使用できるカスタムの型の解決とアセンブリを表しますを解決する必要がある文字列としてこの情報を指定するサポートのエンティティを使用する。

DDEX プロバイダーはこのインターフェイスを暗黙的または明示的に実装する場合があります。 暗黙の実装は DDEX プロバイダーがレジストリ ベースであり、インターフェイスの組み込み実装をサポートするエンティティを作成する方法を説明するさまざまなレジストリ キーを読み取るときに発生します。 明示的な実装は DDEX プロバイダーに基づいてパッケージであるこのインターフェイスのインスタンスが、プロバイダーの Visual Studio パッケージの実装のサービス提供されると発生します。 以前は、アジャイル;。後者は、最も柔軟です。 前者は後者が要求する推奨される方法です。

次のコードは、パッケージ ベースの DDEX のプロバイダーの標準のサポートのエンティティいくつかのサポートを使用してこのインターフェイスを実装する方法を示します。 これは DDEX フレームワークのアセンブリで定義されているインターフェイスの基本実装を使用します。

using System;
using Microsoft.VisualStudio.Data.Core;
using Microsoft.VisualStudio.Data.Framework;
using Microsoft.VisualStudio.Data.Services;
using Microsoft.VisualStudio.Data.Services.SupportEntities;

internal class MyProviderObjectFactory : DataProviderObjectFactory
{
    public override object CreateObject(Type objType)
    {
        if (objType == null)
        {
            throw new ArgumentNullException("objType");
        }
        if (objType == typeof(IVsDataConnectionProperties))
        {
            return new MyConnectionProperties();
        }
        if (objType == typeof(IVsDataConnectionSupport))
        {
            return new MyConnectionSupport();
        }
        return null;
    }
}

internal class MyConnectionProperties : DataConnectionProperties
{
}

internal class MyConnectionSupport : IVsDataConnectionSupport
{
    // Implement the interface methods 

    public void Initialize(object providerObj) {}
    public bool Open(bool doPromptCheck) {return true;}
    public void Close() {}
    public string ConnectionString { get {return "";} set {} }
    public int ConnectionTimeout { get {return 0;} set {} }
    public DataConnectionState State { get {return DataConnectionState.Closed;} }
    public object ProviderObject { get {return null;} }

    // Inherited from System.IServiceProvider  
    public Object GetService(Type serviceType) {return null;}

    // Inherited from System.IDisposable 
    public void Dispose() {}

}

参照

関連項目

Microsoft.VisualStudio.Data.Core 名前空間