Compartilhar via


Método IVsDataProviderDynamicSupport.IsOperationSupported

Determina se uma operação específica é suportado no ambiente atual, para a fonte de dados especificada de DDEX.

Namespace:  Microsoft.VisualStudio.Data.Core
Assembly:  Microsoft.VisualStudio.Data.Core (em Microsoft.VisualStudio.Data.Core.dll)

Sintaxe

'Declaração
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

Parâmetros

  • source
    Tipo: System.Guid
    Um identificador de fonte de dados de DDEX.
  • context
    Tipo: System.Object
    Um objeto que representa o contexto no qual a operação existe.

Valor de retorno

Tipo: System.Boolean
true se a operação é suportada pelo provedor no ambiente atual; caso contrário, false.

Exceções

Exceção Condição
ArgumentNullException

o parâmetro de command é nulluma referência nula (Nothing no Visual Basic).

ArgumentException

O parâmetro de context não é um valor esperado para a operação especificada.

Comentários

Esse método permite que provedores de DDEX para alterar dinamicamente operações que estão disponíveis para o usuário, como o ambiente atual e um contexto específico dentro de esse ambiente.Ou seja o provedor podem adaptar-se a configuração do computador atual e que componentes que suportam o provedor de DDEX são instalados.Um uso comum de esse método seria ativar ou desativar suporte para uma operação específico que dependesse disponibilidade de um determinado componente no computador, como um mecanismo de script.

Exemplos

O código a seguir demonstra como implementar esse método de tal forma que suporta um comando deploy em um nó de conexão no gerenciador de dados somente quando uma chave do Registro específico existe, indicando que uma tecnologia de implantação específica está instalado.

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;
    }
}

Segurança do .NET Framework

Consulte também

Referência

IVsDataProviderDynamicSupport Interface

Namespace Microsoft.VisualStudio.Data.Core