次の方法で共有


DataDefaultObjectAttribute クラス

DDEX のサポートのエンティティにプロバイダーが実装を指定しないときに返す既定の実装があることを指定します。

継承階層

Object
  Attribute
    Microsoft.VisualStudio.Data.Core.DataDefaultObjectAttribute

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

構文

'宣言
<AttributeUsageAttribute(AttributeTargets.Class Or AttributeTargets.Interface)> _
Public NotInheritable Class DataDefaultObjectAttribute _
    Inherits Attribute
[AttributeUsageAttribute(AttributeTargets.Class|AttributeTargets.Interface)]
public sealed class DataDefaultObjectAttribute : Attribute
[AttributeUsageAttribute(AttributeTargets::Class|AttributeTargets::Interface)]
public ref class DataDefaultObjectAttribute sealed : public Attribute
[<Sealed>]
[<AttributeUsageAttribute(AttributeTargets.Class|AttributeTargets.Interface)>]
type DataDefaultObjectAttribute =  
    class 
        inherit Attribute 
    end
public final class DataDefaultObjectAttribute extends Attribute

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

コンストラクター

  名前 説明
パブリック メソッド DataDefaultObjectAttribute 指定したクラス ID を使用して DataDefaultObjectAttribute クラスの新しいインスタンスを初期化します。

このページのトップへ

プロパティ

  名前 説明
パブリック プロパティ ClassId 既定のオブジェクト クラス型を識別するクラス ID を取得します。
パブリック プロパティ TypeId 派生クラスに実装されている場合は、この Attribute の一意の識別子を取得します。 (Attribute から継承されます。)

このページのトップへ

メソッド

  名前 説明
パブリック メソッド Equals インフラストラクチャ。 このインスタンスが、指定したオブジェクトに等しいかどうかを示す値を返します。 (Attribute から継承されます。)
パブリック メソッド GetHashCode 対象のインスタンスのハッシュ コードを返します。 (Attribute から継承されます。)
パブリック メソッド GetType 現在のインスタンスの Type を取得します。 (Object から継承されます。)
パブリック メソッド IsDefaultAttribute 派生クラス内でオーバーライドされたときに、このインスタンスの値が派生クラスの既定値かどうかを示します。 (Attribute から継承されます。)
パブリック メソッド Match 派生クラス内でオーバーライドされたときに、指定したオブジェクトとこのインスタンスが等しいかどうかを示す値を返します。 (Attribute から継承されます。)
パブリック メソッド ToString 現在のオブジェクトを表す文字列を返します。 (Object から継承されます。)

このページのトップへ

明示的なインターフェイスの実装

  名前 説明
明示的なインターフェイス実装プライベート メソッド System#Runtime#InteropServices#_Attribute#GetIDsOfNames 一連の名前を対応する一連のディスパッチ識別子に割り当てます。 (Attribute から継承されます。)
明示的なインターフェイス実装プライベート メソッド System#Runtime#InteropServices#_Attribute#GetTypeInfo オブジェクトの型情報を取得します。この情報はインターフェイスの型情報の取得に使用できます。 (Attribute から継承されます。)
明示的なインターフェイス実装プライベート メソッド System#Runtime#InteropServices#_Attribute#GetTypeInfoCount オブジェクトが提供する型情報インターフェイスの数 (0 または 1) を取得します。 (Attribute から継承されます。)
明示的なインターフェイス実装プライベート メソッド System#Runtime#InteropServices#_Attribute#Invoke オブジェクトによって公開されたプロパティおよびメソッドへのアクセスを提供します。 (Attribute から継承されます。)

このページのトップへ

解説

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

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

適切な既定の実装を持つ DDEX のサポートのエンティティに、エンティティを表す型のこの属性を含める必要があります。 属性は ClassId のプロパティの値を含む値は、Visual Studio の環境に登録されているクラス ID を表す有効な GUID である必要があります。 最後に、クラス ID で識別されるクラスは IVsDataDefaultObject のインターフェイスを実装するマネージ クラスである必要があります。 プロバイダーの実装を使用できない場合にクライアント要求が指定した ID のクラスのインスタンスの作成、DDEX ランタイムのこのインスタンスが作成されます。 既定の実装では、クライアントに戻る渡されます。

DataDefaultObjectAttribute の属性は 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();
    }
}

スレッド セーフ

この型のすべてのパブリック static (Visual Basic では Shared) メンバーは、スレッド セーフです。インスタンス メンバーの場合は、スレッド セーフであるとは限りません。

参照

関連項目

Microsoft.VisualStudio.Data.Core 名前空間