Wie Sie einen Anzeigenamen für einen Dekorateur in Visual Studio DSL (Domain Specific Language) Werkzeuge hinzufügen?

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

  •  09-06-2019
  •  | 
  •  

Frage

In meinem DSL-Projekt habe ich eine Form mit einer Reihe von Dekorateure, den Eigenschaften auf meiner Domain-Klasse verbunden sind. Aber auch wenn ieach Dekorateur eine DisplayName- Eigenschaft hat (auf einen Wert meaningfull) es erscheint nicht in dem generierten DSL-Projekt. (Ich habe nicht die T4-Dateien zu regenerieren forgtten zu verwenden.)

Muß ich für jede Eigenschaft eines andere Dekorateur erstellen, die die Anzeigenamen als Wert hat nur, dass ich wünsche oder anzuzeigen gibt es eine andere Art und Weise, die ich kann jetzt nicht herausgefunden?

War es hilfreich?

Lösung

ich von einem Anzeigenamen übernehmen für den Dekorateur, Sie bedeuten das Element in der generierten DSL als „Beispiel = a_value“ angezeigt werden soll, wo a_value der Ist-Wert und Beispiel ist der Name der Eigenschaft.

Was ich mit diesem in der Vergangenheit getan ist zweite Eigenschaft „ExampleDisplay“ zu erstellen, die nicht durchsuchbar ist und ist das, was der Dekorateur tatsächlich verweist. Ich habe dann die Kind-Eigenschaft des ExampleDisplay zu „berechnet“. Sie müssen dann die Methode zur Verfügung zu stellen, die das Toolkit zu nennen versucht, den Dekorateur anzuzeigen, die Sie eine partielle Klasse tun können.

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

Das ist nicht ideal, da Sie nicht eine gute Art und Weise der Einstellung der Eigenschaft auf dem DSL-Diagramm erhalten müssen Sie das Eigenschaftenfenster verwenden. (Es gibt hinkt irgendwann aus dem Eigenschaftsfenster, wenn Sie in die Aktualisierung der zugrunde liegenden Immobilie Haken auch). Erste die glatte Bearbeitung in der GUI, die tatsächliche DSL-Toolkit vielleicht tut möglich, aber ich habe nicht herausgefunden, wie.

Es ist vielleicht wert fragen VSX-Foren , wenn Sie haben nicht geschehen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top