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提供程序选择,则可在环境时,数据源它可以支持,并且,特定操作提供。前两个选项影响数据提供程序和数据源是否由 IVsDataProviderManagerIVsDataSourceManager 服务枚举并返回,分别。第三个选项影响 IsOperationSupportedGetUnsupportedReason 方法的行为。

示例

下面的代码演示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;
    }
}

请参见

参考

Microsoft.VisualStudio.Data.Core 命名空间