IVsDataProviderDynamicSupport インターフェイス
現在の環境に基づいて DDEX プロバイダー、サポートされるソースと特定の操作のサポートも変更機能を提供します。
名前空間: Microsoft.VisualStudio.Data.Core
アセンブリ: Microsoft.VisualStudio.Data.Core (Microsoft.VisualStudio.Data.Core.dll 内)
構文
'宣言
Public Interface IVsDataProviderDynamicSupport
public interface IVsDataProviderDynamicSupport
public interface class IVsDataProviderDynamicSupport
type IVsDataProviderDynamicSupport = interface end
public interface IVsDataProviderDynamicSupport
IVsDataProviderDynamicSupport 型で公開されるメンバーは以下のとおりです。
プロパティ
名前 | 説明 | |
---|---|---|
IsProviderSupported | プロバイダーが現在の環境でサポートされているかどうかを示す値を取得します。 |
このページのトップへ
メソッド
名前 | 説明 | |
---|---|---|
GetUnsupportedReason | 操作がサポートされていない指定 DDEX のデータ ソースの理由を説明するローカライズされた文字列を取得します。 | |
IsOperationSupported | 特定の操作が現在の環境でサポートされている指定 DDEX のデータ ソースでかどうかを判断します。 | |
IsSourceSupported | 特定 DDEX のデータ ソースが現在の環境でこの DDEX プロバイダーでサポートされるかどうかを示す値を取得します。 |
このページのトップへ
解説
DDEX プロバイダーは、Visual Studio のローカルなレジストリ ハイブに特定のレジストリ キーを追加すると、Visual Studio の特定のインストールの有無を登録します。 通常の状況では、登録はプロバイダーがあり、Visual Studio のインスタンスで使用可能であることを示します。 ただし、一部の状況では DDEX プロバイダーを環境でサポートする必要があるか、特定のデータ ソースまたは特定の操作をサポートするかどうかを動的に決定できるようにする必要があります。 これは DDEX のプロバイダーが使用するか、対象とする特定のコンポーネントが、DDEX プロバイダーがデザイン時に表すたとえば、ADO.NET ランタイム プロバイダー インストールされている場合です。
このサポートのエンティティはデータ ソースによって、特定のサポートされている操作が与えられ環境で使用できる選択したことを DDEX プロバイダーを有効にします。 データ プロバイダーまたはデータ ソースが IVsDataProviderManager と IVsDataSourceManager サービスによって列挙され、が返されるかどうかを最初の 2 個のオプションの影響、それぞれ。 3 つ目 IsOperationSupported と GetUnsupportedReason のメソッドの動作に影響を与えます。
例
次のコードは DDEX プロバイダーが特定のレジストリ キーが存在して、デザイン時に動的に可用性を変更する固有のロジックのこのサポートのエンティティを実装するかを示します。
using System;
using System.ComponentModel.Design;
using Microsoft.Win32;
using Microsoft.VisualStudio.Data.Core;
internal class MyProviderDynamicSupport : IVsDataProviderDynamicSupport
{
public bool IsProviderSupported
{
get
{
RegistryKey key = Registry.LocalMachine.OpenSubKey(
@"SOFTWARE\Company\AdoDotNetProvider");
if (key == null)
{
return false;
}
key.Close();
return true;
}
}
public bool IsSourceSupported(Guid source)
{
return true;
}
public bool IsOperationSupported(
Guid source, CommandID command, object context)
{
return true;
}
public string GetUnsupportedReason(
Guid source, CommandID command, object context)
{
return null;
}
}