Esse conteúdo se
aplica à versão 7.5.2, ou posterior.É
possível modelar métodos de extensão C# 3.0 para gerar código. Métodos de extensão no código também podem ser
gerados no modelo usando uma transformação de C# em UML.
Antes de Iniciar
Para usar os estereótipos necessários nesse procedimento, é necessário aplicar o perfil de
transformação C# ao modelo.
Por Que e Quando Desempenhar Esta Tarefa
Para criar métodos de extensão no modelo:
- Selecione ou crie uma classe C# estática.
- Na visualização Explorador de Projetos ou no editor de diagramas, clique com o botão direito do mouse em
um elemento do modelo que contenha uma classe; em seguida, clique em .
- Clique na guia Estereótipo.
- Clique em Aplicar estereótipos, selecione CSharp Class, e
depois clique em OK.
- Em Propriedades do Estereótipo, definastatic para
True.
- Inclua uma operação UML estática com o estereótipo «CSharp Extension Method» à classe.
- Clique com o botão direito do mouse na classe, e clique em .
- Na visualização Propriedades, clique na guia Geral e depois selecione
Static.
- Clique na guia Estereótipo.
- Clique em Aplicar estereótipos, selecione Método de Extensão
CSharp, e depois clique em OK.
Exemplo
A imagem a seguir mostra uma classe C# estática, chamada ExtensionClass, que contém o método
estático Times. O método considera um parâmetro de tipo Número Inteiro UML para estender e outro parâmetro de
tipo Número Inteiro UML para o multiplicador, e o método retorna um número inteiro.
Após a
execução de uma transformação de UML em C#, o seguinte código é gerado:
//Iniciar seção para o
arquivo ExtensionClass.cs
//TAREFA A FAZER: Incluir o uso de diretivas que deseja preservadas
//Finalizar seção para o arquivo ExtensionClass.cs
using System;
// @generated
public static class ExtensionClass
{
// @generated
public static Int32 Times(this Int32 typeParameter, Int32 multiplier)
{
//TAREFA A FAZER: stub de método gerado automaticamente
throw new System.NotImplementedException();
}
}
O que Fazer Depois
Após modelar o método de extensão, é possível configurar e executar uma transformação de UML em C#
para gerar o código C# para o método.