我创建了一个简单的设计时模板,它使用驻留在同一个项目中的枚举.该模板为该枚举类型中的每个变量创建了一个类定义.
我注意到无论如何更改和保存.tt文件会使它再次出现c#代码.我希望我可以设置解决方案,这样如果我更改枚举然后保存,那么模板也可能再次生成源.那样当我想添加一个新类型时,我可以添加一个变量枚举定义,也许只需按保存.
目前我必须这样做:
那么,也许有一种方法可以让模板"检测"其使用的另一个源的变化,并采取行动,就像它自己被修改一样?
首先安装T4 Toolbox。它添加了许多功能,使 T4 文件的处理变得更加容易。
将 .cs 文件的自定义工具属性更改为T4ScriptFileGenerator。这将在 .cs 文件下创建一个新的 .tt 文件。(请参阅T4 工具箱作者Oleg Sych 的这篇博客文章,了解更多信息)。现在,只要您保存原始 .cs 文件,T4 Toolbox 就会运行匹配的 .tt 文件。
在这个新文件中,您可以添加读取枚举的代码。但是,您似乎正在对生成的程序集使用反射,这需要在每次进行更改时重建项目。使用 Visual StudioEnvDTE来读取您的enum. 您可以在 IDE 中访问已解析 C# 文件的抽象语法树,而无需对其进行编译。
| 归档时间: |
|
| 查看次数: |
2559 次 |
| 最近记录: |