Вопрос

Используя Корпоративный Архитектор (версия 7.5), я пытаюсь усовершенствовать генерацию кода для C #.Чтобы заставить атрибут с начальным значением, представляющим собой строку, сгенерироваться должным образом, единственный способ добиться успеха - это использовать приведенный ниже код.Кто-нибудь знает, есть ли более простой способ сделать это?В настоящее время он кажется немного раздутым.

%if attType=="string" and attInitial!=""%
 = "
%elseIf attInitial!=""%
 = 
%endIf%
%attInitial ? value%
%if attType=="string" and attInitial!=""%
"
%endIf%
Это было полезно?

Решение

%if attInitial!=""% 
 =  
%attInitial% 
%endIf% 

Советник attInitial соответствует Property.default в UML.

По умолчанию :Строка [0..1]

Строка , которая является оцененный чтобы присвоить атрибуту значение по умолчанию при создании экземпляра объекта класса-владельца.-- Инфраструктура UML 2.2 10.2.5, выделено дополнительно

Таким образом, согласно UML, если тип свойства - string, то значение attInitial должно быть выражением, которое вычисляет строку, а не содержимое строкового литерала.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top