Comment ajouter un nom d'affichage pour un décorateur dans les outils Visual Studio DSL (Domain Specific Language)?

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

  •  09-06-2019
  •  | 
  •  

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?

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top