Compartir a través de


IVsDataProviderDynamicSupport.IsOperationSupported (Método)

Determina si una operación concreta se admite en el entorno actual, para el 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 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: Guid

    Un identificador de origen de datos de DDEX.

  • command
    Tipo: CommandID

    Un comando que identifica la operación.

  • context
    Tipo: Object

    Un objeto que representa el contexto en el que la operación existe.

Valor devuelto

Tipo: Boolean
true si la operación admitida por el proveedor en el entorno actual; si no, false.

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 modificar dinámicamente qué operaciones están disponibles para el usuario, según el entorno actual y un contexto concreto dentro de ese entorno. Es decir el proveedor puede adaptar a la configuración del equipo actual y a qué componentes que admiten el proveedor de DDEX instaladas. Un uso común de este método sería habilitar o deshabilitar la compatibilidad para una operación determinada que depende de la disponibilidad de un determinado componente en el equipo, como un motor de script.

Ejemplos

El código siguiente muestra cómo implementar este método de tal forma que admite un comando deploy en un nodo de conexión en el explorador de datos sólo cuando existe una clave del Registro determinado, que indica que una tecnología específica de la implementación está instalada.

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)