【发布时间】:2013-03-09 01:19:34
【问题描述】:
我有一个 T4 模板,我试图在运行时将对象值传递给它。
基本上我们想要做的是:
从 Windows .NET 表单中,以文本形式读取文件
将外部对象属性设置为文本值
在具有输出的 T4 文本模板中访问该对象属性 .java 的扩展名。
我现在开始非常简单,我只有模板和表单,并说一个外部类对象:
当然,阅读表单部分中的文本并设置像 foo.foocode 这样的对象属性是相当简单的。
我只是不知道如何在模板中访问该对象变量或属性,我已经研究了一天多..
谢谢
【问题讨论】:
-
道格,问题不清楚。您提到了您的自定义 t4 生成器,我们对它的工作原理没有任何线索。此外,还不清楚您提到的确切“运行时”-自定义生成器的运行时、模板类生成中 t4 的运行时、t4 生成的类的运行时或 t4 生成的代码的运行时类。
-
@Wiktor 提出了一些好处-您是否尝试添加
preprocessed template(我认为来自代码生成文件夹),它会同时生成 .tt(在其下方带有自动生成的 .cs)+ *.partial.cs 文件?我认为这是让你走的最短路线。有了它,您就拥有了可以访问的“对象”类,将参数传递给构造函数+ .tt 文件,该文件“扩展”了该类并可以使用您传入的任何内容。这一切都很好,而且在更复杂的场景中。 -
对内容不够清晰深表歉意。我会更新帖子。
-
我尝试了预处理模板,但无法将输出类型更改为.java。谢谢
-
出于好奇...您是在制作 UML 或 C# 到 Java 工具吗?