gpt4 book ai didi

code-generation - 如何在 Enterprise Architect 代码生成模板中转义引号

转载 作者:行者123 更新时间:2023-12-02 02:54:52 26 4
gpt4 key购买 nike

我想对枚举值做进一步的描述。因此,如果需要提供描述,我将自定义标记值 添加到名为描述 的枚举属性中。目标是在代码生成期间将自定义 C# 属性添加到标记的枚举属性,但前提是存在这样的标记值。因此,我需要编辑属性声明 的代码生成模板。目前它可以使用:

$hasDescription = %attTag:"Description" ? "true" : "false"%
%if $hasDescription == "true"%
[Description(%qt%%attTag:"Description"%%qt%)]
%endIf%

这给了我想要的输出。但是如果值中有引号,它会破坏输出代码文件。它不会编译。因此,我需要替换/转义标记值 的值字段中的所有引号。我尝试了以下(各种组合):

%REPLACE(attTag:"Description", "\"", "\\\"")%
%REPLACE(attTag:"Description", """", "\\""")%
%REPLACE(attTag:"Description", "%qt%", "%sl%%qt%")%
%REPLACE(attTag:"Description", %qt%, %sl%%qt%)%

注意:%qt%用于插入"%sl%用于插入\ ( reference )

它们都不起作用。要么将字符串按原样插入到生成的代码文件中,要么Tagged Value 值中的引号没有任何变化。

那么有没有办法对这些字符进行转义,以便能够在代码模板中的字符串中替换它们?


使用 Enterprise Architect 13.5.1351

问题首先在 SE Software Engineering 上提出

最佳答案

我查看了提供的其他模板,经过一些摆弄后终于找到了解决方案。宏将一些引号中的文本或变量作为参数。由于直接在 REPLACE 宏中使用转义序列不起作用,我尝试预先将它们分配给变量:

$qt = %qt%
$escape = %sl% + %qt%
$description = %REPLACE(attTag:"Description", $qt, $escape)%

就是这样。终于工作了。在第二行的 %sl%%qt% 之间添加 + 很重要,即使 documentation on Code Template Syntax > Literal Text另有说明。 $escape = %sl%%qt% 不起作用,因为它只给我一个没有 "\

变量 $description 不是必需的,但为了便于阅读而添加。

关于code-generation - 如何在 Enterprise Architect 代码生成模板中转义引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49995460/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com