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.
- 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.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
- 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.