Поделиться через


IVsDataProviderDynamicSupport.IsOperationSupported - метод

Указывает, поддерживается ли конкретная операция в текущей среде, для указанного источника данных DDEX.

Пространство имен:  Microsoft.VisualStudio.Data.Core
Сборка:  Microsoft.VisualStudio.Data.Core (в Microsoft.VisualStudio.Data.Core.dll)

Синтаксис

'Декларация
Function IsOperationSupported ( _
    source As Guid, _
    command As CommandID, _
    context As Object _
) As Boolean
bool IsOperationSupported(
    Guid source,
    CommandID command,
    Object context
)
bool IsOperationSupported(
    Guid source, 
    CommandID^ command, 
    Object^ context
)
abstract IsOperationSupported : 
        source:Guid * 
        command:CommandID * 
        context:Object -> bool
function IsOperationSupported(
    source : Guid, 
    command : CommandID, 
    context : Object
) : boolean

Параметры

  • source
    Тип: Guid

    Идентификатор источника данных DDEX.

  • command
    Тип: CommandID

    Команда, определяющий операцию.

  • context
    Тип: Object

    Объект, представляющий контекст, в течение которого операция существует.

Возвращаемое значение

Тип: Boolean
true , если операция поддерживается поставщиком в текущей среде; в противном случае – значение false.

Исключения

Исключение Условие
ArgumentNullException

Значение параметра command — nullссылка NULL (Nothing в Visual Basic).

ArgumentException

Параметр context не является ожидаемым значением для указанной операции.

Заметки

Этот метод позволяет поставщикам DDEX для динамического изменения, какие операции доступны для пользователя, в зависимости от текущей среды и заданного контекста в этой среде. Иначе говоря, поставщик может приспособиться к текущей конфигурации компьютера и компонентов поддержки поставщика, DDEX set. Распространенное использование этого метода будет включить или отключить поддержку для указанной операции, зависят от доступности указанного компонента на компьютере, в качестве обработчика скриптов.

Примеры

В следующем примере кода показано, как реализовать этот метод таким образом, он поддерживает команду развертывание на узле подключения в обозревателе данных только в том случае, если указанный раздел реестра существует, указывающее, что указанная технология развертывания установитьа.

using System;
using System.ComponentModel.Design;
using Microsoft.Win32;
using Microsoft.VisualStudio.Data.Core;
using Microsoft.VisualStudio.Data.Services;

public class MyProviderDynamicSupport2 : IVsDataProviderDynamicSupport
{
    private static readonly CommandID DeployCommand =
        new CommandID(new Guid("6535F307-2083-4cbb-B2FA-11F2DCD69DAF"), 25);

    public bool IsProviderSupported
    {
        get
        {
            return true;
        }
    }

    public bool IsSourceSupported(Guid source)
    {
        return true;
    }

    public bool IsOperationSupported(
        Guid source, CommandID command, object context)
    {
        if (command == null)
        {
            throw new ArgumentNullException("command");
        }
        if (command.Equals(DeployCommand))
        {
            IVsDataExplorerConnection explorerConnection =
                context as IVsDataExplorerConnection;
            if (explorerConnection == null)
            {
                throw new ArgumentException();
            }
            RegistryKey key = Registry.LocalMachine.OpenSubKey(
                @"SOFTWARE\Company\DeployTechnology");
            if (key == null)
            {
                return false;
            }
            key.Close();
        }
        return true;
    }

    public string GetUnsupportedReason(
        Guid source, CommandID command, object context)
    {
        if (command == null)
        {
            throw new ArgumentNullException("command");
        }
        if (command.Equals(DeployCommand) &&
            !IsOperationSupported(source, command, context))
        {
            // Note: This string should be localized 
            return "In order to deploy a database you need to install our deployment technology.";
        }
        return null;
    }
}

Безопасность платформы .NET Framework

См. также

Ссылки

IVsDataProviderDynamicSupport Интерфейс

Microsoft.VisualStudio.Data.Core - пространство имен