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.
- command
Tipo: System.ComponentModel.Design.CommandID
Um comando que identifica a operação.
- 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
- Confiança total para o chamador imediato. O membro não pode ser usado por código parcialmente confiável. Para obter mais informações, consulte Usando bibliotecas de código parcialmente confiáveis.