之前的文章都介绍的是通过保存的方式来使用T4,或者是通过VS下的TextTransform.exe文件来编译T4(还需要考虑传参长度等各种问题)T4模板引擎 参数调用;
这些方法都比较繁琐,可以适用在不同的使用场景下,本文介绍一下运行时的T4模板
运行时T4只需要在创建时候选择为运行时模板即可,和之前的模板引擎类型不同。
运行时T4生成工具为TextTemplatingFilePreprocessor,普通模板引擎是 TextTemplatingFileGenerator,需要注意区分。
模板引擎默认保存生成的是txt,运行时模板默认保存生成的是cs代码(生成与文件名一致的类)
运行时模板会在保存时生成对应的类
后续只需要调用这个TransformText方法就能获得生成的字符串结果。
例如
var page = new RuntimeTextTemplate1();
String pageContent = page.TransformText();
System.IO.File.WriteAllText(@"D:\work\code\outputPage.html", pageContent);
参数传递
运行时T4生成的代码是分部类,因此可以手动创建另外的代码来添加公共属性,然后在模板中使用
尾注
如果需要在编译期间生成可以考虑使用Source Generate
[参考]
使用 T4 文本模板生成运行时文本