次の方法で共有


IVsDataDefaultObject インターフェイス

DDEX のサポートのエンティティの既定の実装を表します。

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

構文

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

解説

特定のプロバイダーの DDEX のサポートのエンティティのインスタンスを作成するに DDEX のクライアントが DDEX のランタイムを呼び出すときにエンティティをサポートする、インスタンスが作成され、が返されますかどうかを確認するには、照会プロバイダー。 プロバイダーはエンティティをサポートしていない場合、呼び出しは既定で例外をスローするか、コード パスで nullnull 参照 (Visual Basic では Nothing)を返します。 ただし、DDEX のサポートのエンティティの所有者は、DDEX プロバイダーが独自の実装を提供しない場合にエラー状態を回避するクライアントを指定する適切な既定の実装がある場合があります。

このの 1 例は、実際に IVsDataConnectionUIConnector のサポートのエンティティです。 このサポートのエンティティは UI のコンテキストからデータ接続を開くために呼び出されますデータ接続]ダイアログ ボックスなど、一つのメソッドが含まれています。 このサポートのエンティティの一般的な用途は、見つからなかった場合はデータ接続のターゲットの存在を確認して新しいデータ ストアを作成するメッセージの表示などの追加の動作を追加することです。 ただし、適切な既定値は接続を開き、通常、特別な操作を実行しないためです。 この既定の実装を指定することによって、クライアント コードは、既に別に、プロバイダーがこのサポートのエンティティを、独自のフォールバック、既定の実装を含める必要があります。または実行されない場合の処理が簡単ではありません。

適切な既定の実装を持つ DDEX のサポートのエンティティに、エンティティを表す型の DataDefaultObjectAttribute の属性を含める必要があります。 この属性は、このインターフェイスを実装する既定のクラスを識別します。 クライアントから要求されたときに、DDEX のランタイムはプロバイダーの実装を使用できない場合に既定のクラスのインスタンスを作成します。 このインターフェイスの目的は、オブジェクトのインスタンスが既定の実装であるかどうかを DDEX のランタイムおよびクライアントができるようにすることです。

IVsDataDefaultObject のインターフェイスは DDEX プラットフォームの拡張、追加の DDEX サービスとサポートのエンティティを作成するつまり、主に重要です。

次のコードは既定のオブジェクト属性を宣言する IVsDataConnectionUIConnector のサポートのエンティティの定義を示します。 これは、この既定のオブジェクトの実装が続きます。

using System;
using System.Runtime.InteropServices;
using Microsoft.VisualStudio.Data.Core;
using Microsoft.VisualStudio.Data.Services;

[DataDefaultObject("C58E1B8D-9723-40c8-8B11-9DDAF0B393BA")]
public interface IVsDataConnectionUIConnector
{
    void Connect(IVsDataConnection connection);
}

[Guid("C58E1B8D-9723-40c8-8B11-9DDAF0B393BA")]
internal class DefaultConnectionUIConnector
    : IVsDataConnectionUIConnector,
      IVsDataDefaultObject
{
    public void Connect(IVsDataConnection connection)
    {
        if (connection == null)
        {
            throw new ArgumentNullException("connection");
        }
        connection.Open();
    }
}

参照

関連項目

Microsoft.VisualStudio.Data.Core 名前空間