Compartilhar via


Interface ICommandExtension

Implemente e exporte essa interface a partir de uma extensão MEF para fornecer um comando de menu para diagramas de modelagem.

Namespace:  Microsoft.VisualStudio.Modeling.ExtensionEnablement
Assembly:  Microsoft.VisualStudio.Modeling.Sdk.11.0 (em Microsoft.VisualStudio.Modeling.Sdk.11.0.dll)

Sintaxe

'Declaração
Public Interface ICommandExtension
public interface ICommandExtension

O tipo ICommandExtension expõe os membros a seguir.

Propriedades

  Nome Descrição
Propriedade pública Text O rótulo visível que identifica este comando no menu.

Superior

Métodos

  Nome Descrição
Método público Execute Chamado quando o usuário clica este comando no menu.
Método público QueryStatus Implemente isso para definir se o comando deve ser visível e ativado.Definir o comando.Visível e o comando.Habilitado.Não altere o estado do modelo.

Superior

Comentários

Para definir um comando de menu para um diagrama UML, você pode implementar essa interface em um Visual Studio extensão.No extension.manifest, seu conjunto deve ser identificado como um componente MEF.Você deve prefixar sua classe com um atributo de exportação:

[Export(typeof(ICommandExtension))]

Você também deve fornecer um atributo para cada tipo de diagrama no qual você deseja que o comando deve aparecer:

[ClassDesignerExtension]

Defina o comando como uma classe pública:

public class NameSwapper : ICommandExtension {

Dentro de sua classe, você deve importar IDiagramContext, para que você possa acessar o diagrama atual, as formas selecionadas, elementos de modelo e armazenamento de modelo:

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

Você também pode importar IServiceProvider, para obter acesso a Visual Studio componentes como o Solution Explorer:

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

Se seu comando fará diversas alterações ao modelo, você poderá agrupá-las em uma única transação, para que você pode abandonar todo o grupo se um falhar, e para que o usuário pode desfazer o grupo inteiro com um comando Desfazer única.ILinkedUndoContextpermite que você criar uma transação:

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

Para obter mais informações, consulte Como: definir um comando de Menu em um diagrama de modelagem.

Consulte também

Referência

Namespace Microsoft.VisualStudio.Modeling.ExtensionEnablement