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 实现的任何接口等