Поделиться через


ICommandExtension - интерфейс

Реализуйте этот интерфейс и экспортировать из расширения MEF, чтобы обеспечить команду меню для моделирования схемы.

Пространство имен:  Microsoft.VisualStudio.Modeling.ExtensionEnablement
Сборка:  Microsoft.VisualStudio.Modeling.Sdk.11.0 (в Microsoft.VisualStudio.Modeling.Sdk.11.0.dll)

Синтаксис

'Декларация
Public Interface ICommandExtension
public interface ICommandExtension

Тип ICommandExtension предоставляет следующие члены.

Свойства

  Имя Описание
Открытое свойство Text Метка, отображаемая определяет эту команду в меню.

В начало страницы

Методы

  Имя Описание
Открытый метод Execute Вызывается, когда пользователь нажимает эту команду меню.
Открытый метод QueryStatus Реализуйте это, чтобы указать, должна ли команда быть видна, а.Задайте команду. Visible и команд. включено.Не изменяйте состояние модели.

В начало страницы

Заметки

Для указания команды меню для uml-схем, можно реализовать этот интерфейс в a Visual Studio расширение.В extension.manifest, сборку должен быть определен как компонент MEF.Вы префикс класс с атрибутом экспорта.

[Export(typeof(ICommandExtension))]

Также необходимо указать атрибут для каждого типа схемы, на котором будет отображаться команду:

[ClassDesignerExtension]

Определите команду как открытый класс:

public class NameSwapper : ICommandExtension {

Внутри класса необходимо импортировать IDiagramContext, позволяя доступ к текущей схеме, выбранные фигуры, элементы модели, и хранилище модели:

[Import] public IDiagramContext Context { get; set; }

Можно также импортировать IServiceProviderдоступ к Visual Studio компоненты как обозревателе решений.

[Import] public IServicerProvider ServiceProvider { get; set; }

Если ваша команда выполняет ряд изменений в модели, может понадобиться сгруппировать их вместе в одной транзакции, так что можно прервать группу целого если он завершается ошибкой, чтобы пользователь мог отменить группы целиком с помощью одной команды отката.ILinkedUndoContext позволяет создать транзакцию.

[Import] public ILinkedUndoContext LinkedUndoContext {get; set;}

Дополнительные сведения см. в разделе Практическое руководство. Определение команды меню на схеме моделирования.

См. также

Ссылки

Microsoft.VisualStudio.Modeling.ExtensionEnablement - пространство имен