Condividi tramite


Metodo IVsDataProviderDynamicSupport.IsOperationSupported

Determina se un'operazione specifica supportata nell'ambiente corrente, per l'origine dati specificata di DDEX.

Spazio dei nomi:  Microsoft.VisualStudio.Data.Core
Assembly:  Microsoft.VisualStudio.Data.Core (in Microsoft.VisualStudio.Data.Core.dll)

Sintassi

'Dichiarazione
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

Parametri

  • source
    Tipo: Guid

    Un identificatore di origine dati di DDEX.

  • command
    Tipo: CommandID

    Un comando che identifica l'operazione.

  • context
    Tipo: Object

    Un oggetto che rappresenta il contesto in cui l'operazione esiste.

Valore restituito

Tipo: Boolean
true se l'operazione è supportata dal provider nell'ambiente corrente; in caso contrario, false.

Eccezioni

Eccezione Condizione
ArgumentNullException

Il parametro command è nullriferimento null (Nothing in Visual Basic).

ArgumentException

Il parametro context non sia un valore previsto per l'operazione specificata.

Note

Questo metodo consente ai provider di DDEX per alterare dinamicamente le operazioni sono disponibili all'utente, come l'ambiente corrente e un contesto specifico all'interno di tale ambiente. Ovvero il provider può adattare la configurazione del computer corrente e ai componenti che supportano il provider di DDEX vengono installati. Un utilizzo comune di questo metodo è di abilitare o disabilitare il supporto per una determinata operazione che dipende dalla disponibilità di un componente specifico nel computer, ad esempio un motore di scripting.

Esempi

Il codice seguente viene illustrato come implementare il metodo in modo che supporta un comando di distribuzione su un nodo della connessione in esplora di dati solo quando una chiave del Registro di sistema specifico esiste, per indicare che una specifica tecnologia di distribuzione è installata.

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

Sicurezza di .NET Framework

Vedere anche

Riferimenti

IVsDataProviderDynamicSupport Interfaccia

Spazio dei nomi Microsoft.VisualStudio.Data.Core