在 .NET 中运行时生成文件的 T4 替代方案

Posted

技术标签:

【中文标题】在 .NET 中运行时生成文件的 T4 替代方案【英文标题】:Alternatives to T4 for runtime generation of files in .NET 【发布时间】:2016-12-09 05:45:52 【问题描述】:

我们的业务需求是生成元数据文件,通常是 json 或 XML,符合各种模式,并在运行时由服务器应用程序生成。

T4 似乎是一个很好的选择。在运行时提供参数以及将静态文本与 C# 相结合的能力非常完美。但是MSDN's documentation 建议不要在服务器应用程序中使用它,并建议所有转换都以串行方式执行。

有没有 T4 模板的替代品,用于在运行时基于文本模板动态生成元数据文件?

【问题讨论】:

【参考方案1】:

T4 有两个方面,编译时和运行时。它们基于相同的技术,但目的却大不相同。编译时间是生成将作为应用程序的一部分编译的代码。运行时转换就是您要在这里寻找的。​​p>

文档说的是他们不建议在服务器上使用编译时,但是,使用运行时转换应该没问题。它本身会生成一个处理运行时转换的类。该应用程序将是独立的,不需要 VS 组件来执行转换。

Run-Time Text Generation with T4 Text Templates。

【讨论】:

对,我想不建议在服务器上进行编译时转换是有道理的,但即便如此,它似乎建议不要在单线程中进行转换,这对我们来说并不理想。我一直想看看 Razor 是否可以用来做我描述的事情......

以上是关于在 .NET 中运行时生成文件的 T4 替代方案的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Flutter 中运行时生成 Sceneform 资源

如何使用 python 为 Web 元素生成 Xpath(在我的脚本中运行时)?

使用KEIL C51 V9.00调试软件在LM3S6965中运行时,编译无法生成axf文件,报错如下图

在 Azure 中运行时,ML.NET Tensorflow 图像分类崩溃并出现 SEHException

在 jest testrunner 中运行时,Mongoose 模型函数超时

在 WPF .net core 5 中运行时更改应用程序文化时如何更新属性绑定