IVsDataProviderDynamicSupport.GetUnsupportedReason (Método)

Obtiene una cadena traducida que describe el motivo que una operación no se admite, del origen de datos especificado de DDEX.

Espacio de nombres:  Microsoft.VisualStudio.Data.Core
Ensamblado:  Microsoft.VisualStudio.Data.Core (en Microsoft.VisualStudio.Data.Core.dll)

Sintaxis

'Declaración
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
    Un identificador de origen de datos de DDEX.
  • context
    Tipo: System.Object
    Un objeto que representa el contexto en el que la operación existe.

Valor devuelto

Tipo: System.String
Una cadena traducida que describe por qué la operación especificada no se admite, si la operación de hecho no se admite; si no, nullreferencia null (Nothing en Visual Basic).

Excepciones

Excepción Condición
ArgumentNullException

El valor del parámetro command es nullreferencia null (Nothing en Visual Basic).

ArgumentException

El parámetro de context no es un valor esperado para la operación especificada.

Comentarios

Este método permite a los proveedores de DDEX para devolver una razón concreta que una operación no se admite.Los clientes de DDEX pueden mostrar esta razón al usuario.

Ejemplos

El código siguiente muestra cómo implementar este método para devolver un mensaje útil cuando no se admite un comando deploy en un nodo de conexión en el explorador de los datos.

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

Seguridad de .NET Framework

Vea también

Referencia

IVsDataProviderDynamicSupport Interfaz

Microsoft.VisualStudio.Data.Core (Espacio de nombres)