使用Enterprise Architect(版本7.5),我正在尝试优化C#的代码生成。要使具有正确生成字符串的初始值的属性生成,我成功的唯一方法是使用下面的代码。有谁知道更简单的方法吗?它目前看起来有点臃肿。
%if attType=="string" and attInitial!=""%
= "
%elseIf attInitial!=""%
=
%endIf%
%attInitial ? value%
%if attType=="string" and attInitial!=""%
"
%endIf%
答案 0 :(得分:1)
%if attInitial!=""%
=
%attInitial%
%endIf%
EA的attInitial
对应于UML中的Property.default。
默认值:字符串[0..1]
已评估的字符串,以便在实例化拥有类的对象时为该属性提供默认值。 - UML 2.2基础设施10.2.5,重点添加
所以根据UML,如果属性的类型是字符串,那么值attInitial
应该是一个表达式,它计算字符串,而不是字符串文字的内容。
如果你确实希望它是一个非UML兼容的扩展字符串文字值,你必须写一些比上面做的更复杂的东西来处理转义。