Come aggiungere un nome visualizzato per un decoratore negli strumenti DSL (Domain Specific Language) di Visual Studio?

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

  •  09-06-2019
  •  | 
  •  

Domanda

Nel mio progetto DSL ho una forma con un numero di decoratori collegati alle proprietà della mia classe di dominio.Ma anche se ogni decoratore ha una proprietà DisplayName (impostata su un valore significativo), questa non appare nel progetto DSL generato.(Non ho dimenticato di utilizzare la rigenerazione dei file t4.)

Devo creare un altro decoratore per ogni proprietà che abbia solo il nome visualizzato come valore che desidero visualizzare o esiste un altro modo che non riesco a capire in questo momento?

È stato utile?

Soluzione

Presumo che con un nome visualizzato per il decoratore intendi che vuoi che l'elemento nel DSL generato appaia come "Example = a_value" dove a_value è il valore effettivo ed Esempio è il nome della proprietà.

Ciò che ho fatto in passato è stato creare una seconda proprietà "ExampleDisplay" che non è esplorabile ed è ciò a cui punta effettivamente il decoratore.Quindi imposto la proprietà Kind di EsempioDisplay su "Calculated".È quindi necessario fornire il metodo che il toolkit tenta di chiamare per visualizzare il decoratore di cui è possibile eseguire una classe parziale.

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

Questo non è l'ideale in quanto non si ottiene un buon modo per impostare la proprietà sul diagramma DSL, è necessario utilizzare la finestra delle proprietà.(A volte si verificano ritardi nella finestra delle proprietà a meno che non ci si colleghi anche all'aggiornamento della proprietà sottostante).Ottenere l'editing nella GUI che l'attuale toolkit DSL è forse possibile, ma non ho scoperto come.

Forse vale la pena chiedere Forum VSX se non lo hai già fatto.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top