.net IEnumerable T4模板

9rbhqvlz  于 2023-03-04  发布在  .NET
关注(0)|答案(1)|浏览(134)

我正在使用T4 RuntimTemplates进行一些代码生成的工作。我有不止一个模板,我把它们“存储”在一个IEnumerable列表中。
我的问题是我想使用.WriteAllText()(一个虚方法)迭代模板。
我想,用.WriteAllText()的定义创建一个接口并在分部类中声明它可能是最简单的方法。

public partial class SolutionTemplateRunTime : SolutionTemplateRunTimeBase, ICodegenerationTemplate
{

这在我存储或更新模板之前有效;模板的partial类(cs背后的代码)得到更新,接口声明消失。

public partial class SolutionTemplateRunTime : SolutionTemplateRunTimeBase
{

有没有解决方案来处理这个问题?每当我更新模板时都要重新声明接口,这有点烦人。
希望你能帮忙。
格雷茨·伊基

gab6jxml

gab6jxml1#

我认为您没有理解partial的要点--其思想是您想要做的更改完全是在一个单独的文件中完成的--一个不会生成的文件。
只需创建一个新的cs文件,声明如下:

public partial class SolutionTemplateRunTime : ICodegenerationTemplate
{
  ...
}

当编译代码时,编译器会合并同一个类的所有分部声明--这包括类实现的任何接口等等。

相关问题