IVsDataProviderDynamicSupport.IsOperationSupported - метод
Указывает, поддерживается ли конкретная операция в текущей среде, для указанного источника данных DDEX.
Пространство имен: Microsoft.VisualStudio.Data.Core
Сборка: Microsoft.VisualStudio.Data.Core (в Microsoft.VisualStudio.Data.Core.dll)
Синтаксис
'Декларация
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
Параметры
source
Тип: GuidИдентификатор источника данных DDEX.
command
Тип: CommandIDКоманда, определяющий операцию.
context
Тип: ObjectОбъект, представляющий контекст, в течение которого операция существует.
Возвращаемое значение
Тип: Boolean
true , если операция поддерживается поставщиком в текущей среде; в противном случае – значение false.
Исключения
Исключение | Условие |
---|---|
ArgumentNullException | Значение параметра command — nullссылка NULL (Nothing в Visual Basic). |
ArgumentException | Параметр context не является ожидаемым значением для указанной операции. |
Заметки
Этот метод позволяет поставщикам DDEX для динамического изменения, какие операции доступны для пользователя, в зависимости от текущей среды и заданного контекста в этой среде. Иначе говоря, поставщик может приспособиться к текущей конфигурации компьютера и компонентов поддержки поставщика, DDEX set. Распространенное использование этого метода будет включить или отключить поддержку для указанной операции, зависят от доступности указанного компонента на компьютере, в качестве обработчика скриптов.
Примеры
В следующем примере кода показано, как реализовать этот метод таким образом, он поддерживает команду развертывание на узле подключения в обозревателе данных только в том случае, если указанный раздел реестра существует, указывающее, что указанная технология развертывания установитьа.
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;
}
}
Безопасность платформы .NET Framework
- Полное доверие для непосредственно вызывающего метода. Этот член не может быть использован частично доверенным кодом. Для получения дополнительной информации см. Использование библиотек из не вполне надежного кода.