Как добавить отображаемое имя для декоратора в инструментах Visual Studio DSL (Domain Specific Language)? - PullRequest
1 голос
/ 16 сентября 2008

В моем проекте DSL у меня есть форма с несколькими декораторами, которые связаны со свойствами в моем классе домена. Но даже при том, что ieach decorator имеет свойство DisplayName (установлено в значащее значение), оно не появляется в сгенерированном проекте DSL. (Я не забыл использовать регенерировать файлы t4.)

Нужно ли создавать другой декоратор для каждого свойства, в котором в качестве значения, которое я хочу отображать, отображается только отображаемое имя, или есть какой-то другой способ, который я не могу сейчас выяснить?

1 Ответ

1 голос
/ 18 сентября 2008

Я предполагаю, что в качестве отображаемого имени для декоратора вы хотите, чтобы элемент в сгенерированном DSL отображался как «Example = a_value», где a_value - фактическое значение, а Example - имя свойства.

То, что я делал с этим в прошлом, - это создание второго свойства "ExampleDisplay", которое не просматривается и на которое фактически указывает декоратор. Затем я установил свойство Kind для ExampleDisplay на «Вычислено». Затем вам нужно предоставить метод, который инструментарий пытается вызвать для отображения декоратора, который вы можете сделать частичным классом.

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

Это не идеально, так как у вас нет хорошего способа установки свойства на диаграмме DSL, вы должны использовать окно свойств. (Есть некоторые задержки с окном свойства, если только вы не подключитесь к обновлению базового свойства). Возможно получить плавное редактирование в графическом интерфейсе, которое делает настоящий набор инструментов DSL, возможно, но я не выяснил, как это сделать.

Возможно, стоит спросить Форумы VSX , если вы этого еще не сделали.

...