Como adicionar um nome de exibição para um decorador nas ferramentas DSL (Domain Specific Language) do Visual Studio?

StackOverflow https://stackoverflow.com/questions/71843

  •  09-06-2019
  •  | 
  •  

Pergunta

No meu projeto DSL, tenho uma forma com vários decoradores vinculados às propriedades da minha classe de domínio.Mas mesmo que cada decorador tenha uma propriedade DisplayName (definida com um valor significativo), ela não aparece no projeto DSL gerado.(Não esqueci de usar regenerar os arquivos t4.)

Preciso criar outro decorador para cada propriedade que tenha apenas o nome de exibição como valor que desejo exibir ou há alguma outra maneira que não consigo descobrir agora?

Foi útil?

Solução

Presumo que por um nome de exibição para o decorador você queira dizer que deseja que o elemento na DSL gerada apareça como "Exemplo = a_valor", onde a_valor é o valor real e Exemplo é o nome da propriedade.

O que fiz com isso no passado foi criar uma segunda propriedade "ExampleDisplay" que não é navegável e é para onde o decorador realmente aponta.Em seguida, defino a propriedade Kind de ExampleDisplay como "Calculated".Em seguida, você precisa fornecer o método que o kit de ferramentas tenta chamar para exibir o decorador, no qual você pode fazer uma classe parcial.

partial class ExampleElement
{
    string GetExampleDisplayValue()
    {
        return "Example : " + this.Example;
    }
}

Isso não é ideal, pois você não consegue uma boa maneira de definir a propriedade no diagrama DSL; é necessário usar a janela de propriedades.(Há algum atraso na janela de propriedades, a menos que você também se conecte à atualização da propriedade subjacente).Obter a edição inteligente na GUI que o kit de ferramentas DSL real faz talvez seja possível, mas não descobri como.

Talvez valha a pena perguntar Fóruns VSX se você ainda não o fez.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top