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: GuidUn identificador de origen de datos de DDEX.
command
Tipo: CommandIDUn comando que identifica la operación.
context
Tipo: ObjectUn 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
- Plena confianza para el llamador inmediato. Un código de confianza parcial no puede utilizar este miembro. Para obtener más información, vea Utilizar bibliotecas de código que no es de plena confianza.