我不知道如何使用 CodeSmith 来做到这一点,但最好使用“构建块”方法。AtomWeaver提供了一种通过更小的部分构建代码生成器的方法,称为“Atoms”。这些原子是可以组合在一起的模板。
在您的情况下,我将构建一个名为 cs_class 的 Atom 模板:
模板的执行代码将是:
code([[
using System;
public class Hello3
{
public static void Main(string[] args)
{
{{code_blocks}}
}
}
]])
注意 {{code_blocks}} 标记。另一个模板将在那里放置一些代码。
然后,创建 cs_code_block Atom 模板。使用此代码:
对于管理部分:
under("cs_class")
对于执行部分:
cursor("code_blocks")
code([[
<put user code here>
]])
under() 命令可帮助您在 AtomWeaver 中构建交互式建模环境。现在,您的用户可以使用一个 cs_class Atom 创建模型,然后他可以添加任意数量的 cs_code_block Atom。执行模型将生成所需的代码。
AtomWeaver 可让您改进模型和代码生成器。从几行开始很容易,然后将其扩展以获得完整的生成器。
我知道这是一个非常非常简单的示例,说明您可以使用 AtomWeaver 构建什么,但这只是为了让您快速了解您可以完成什么。