Comment ajouter un nom d'affichage pour un décorateur dans les outils Visual Studio DSL (Domain Specific Language)?
Question
Dans mon projet DSL, j'ai une forme avec un certain nombre de décorateurs liés aux propriétés de ma classe de domaine. Mais même si ieach decorator a une propriété DisplayName (définie sur une valeur significative), elle n'apparaît pas dans le projet DSL généré. (Je n'ai pas oublié d'utiliser pour régénérer les fichiers t4.)
Dois-je créer un autre décorateur pour chaque propriété dont le nom d'affichage est uniquement une valeur que je souhaite afficher ou existe-t-il un autre moyen que je ne parviens pas à comprendre maintenant?
La solution
Je suppose que, par un nom d'affichage pour le décorateur, vous voulez que l'élément de la DSL générée apparaisse sous la forme "Example = a_value". où a_value est la valeur réelle et Example, le nom de la propriété.
Par le passé, j’ai utilisé cette méthode pour créer une deuxième propriété " ExampleDisplay " ce n'est pas navigable et c'est ce que le décorateur pointe réellement. J'ai ensuite défini la propriété Kind de ExampleDisplay sur "Calculated". Vous devez ensuite fournir la méthode que la boîte à outils essaie d’appeler pour afficher le décorateur et lui permettre de faire une classe partielle.
partial class ExampleElement
{
string GetExampleDisplayValue()
{
return "Example : " + this.Example;
}
}
Ce n’est pas idéal, car vous ne pouvez pas définir correctement les propriétés du diagramme DSL, vous devez utiliser la fenêtre des propriétés. (Il y a parfois des décalages par rapport à la fenêtre de propriété, sauf si vous vous connectez également à la mise à jour de la propriété sous-jacente). Il est peut-être possible d’éditer dans l’interface graphique l’habile boîte à outils DSL, mais je n’ai pas trouvé comment.
Cela vaut peut-être la peine de demander forums VSX si vous ne l'ont pas déjà fait.