IEnumerable T4 模板
IEnumerable T4 Templates
我正在研究一些代码生成的东西 - 使用 T4 RuntimTemplates。
我确实有不止一个模板,我 "store" 它们在一个 IEnumberable 列表中。
我的问题是我想使用虚拟方法 .WriteAllText() 遍历模板。
我认为,这可能是最简单的方法来创建具有 .WriteAllText() 定义的接口并在部分 class..
中声明它
public partial class SolutionTemplateRunTime : SolutionTemplateRunTimeBase, ICodegenerationTemplate
{
在我存储或更新模板之前,这一直有效 ;-)。模板的部分 class(cs 后面的代码)得到更新,接口声明消失。
public partial class SolutionTemplateRunTime : SolutionTemplateRunTimeBase
{
有解决办法吗?每当我更新模板时重新声明接口有点烦人..
希望能帮到你..
Greetz Iki
我认为您忽略了 partial
的要点 - 这个想法是您想要做的那种更改是在一个单独的文件中完成的 - 一个没有生成的文件。
只需创建一个新的 cs
文件,声明如下:
public partial class SolutionTemplateRunTime : ICodegenerationTemplate
{
...
}
编译代码时,编译器将合并相同 class 的所有部分声明 - 这包括 class 实现的任何接口等
我正在研究一些代码生成的东西 - 使用 T4 RuntimTemplates。 我确实有不止一个模板,我 "store" 它们在一个 IEnumberable 列表中。
我的问题是我想使用虚拟方法 .WriteAllText() 遍历模板。
我认为,这可能是最简单的方法来创建具有 .WriteAllText() 定义的接口并在部分 class..
中声明它 public partial class SolutionTemplateRunTime : SolutionTemplateRunTimeBase, ICodegenerationTemplate
{
在我存储或更新模板之前,这一直有效 ;-)。模板的部分 class(cs 后面的代码)得到更新,接口声明消失。
public partial class SolutionTemplateRunTime : SolutionTemplateRunTimeBase
{
有解决办法吗?每当我更新模板时重新声明接口有点烦人.. 希望能帮到你..
Greetz Iki
我认为您忽略了 partial
的要点 - 这个想法是您想要做的那种更改是在一个单独的文件中完成的 - 一个没有生成的文件。
只需创建一个新的 cs
文件,声明如下:
public partial class SolutionTemplateRunTime : ICodegenerationTemplate
{
...
}
编译代码时,编译器将合并相同 class 的所有部分声明 - 这包括 class 实现的任何接口等