Partilhar via


Método IVsDataProviderDynamicSupport.GetUnsupportedReason

Obtém uma cadeia de caracteres localizada que descreve a razão que uma operação não é suportada, 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 GetUnsupportedReason ( _
    source As Guid, _
    command As CommandID, _
    context As Object _
) As String
string GetUnsupportedReason(
    Guid source,
    CommandID command,
    Object context
)
String^ GetUnsupportedReason(
    Guid source, 
    CommandID^ command, 
    Object^ context
)
abstract GetUnsupportedReason : 
        source:Guid * 
        command:CommandID * 
        context:Object -> string 
function GetUnsupportedReason(
    source : Guid, 
    command : CommandID, 
    context : Object
) : String

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.String
Uma cadeia de caracteres localizada que descreve como a operação especificada não é suportada, se a operação na verdade não é suportado; caso contrário, nulluma referência nula (Nothing no Visual Basic).

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 retornar uma razão específica que uma operação não é suportado.Os clientes de DDEX podem exibir esta razão para o usuário.

Exemplos

O código a seguir demonstra como implementar esse método para retornar uma mensagem útil quando um comando deploy em um nó de conexão no gerenciador de dados não é suportado.

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