C#模板引擎

68 c# template-engine

我正在寻找一个独立的,易于使用的C#代码,模板引擎.我想创建一个带有数据占位符的HTML和XML文件,并用我的代码中的数据填充它们.

引擎需要支持循环(复制模板的部分形成多于一个对象)和条件(仅当某些条件为真时才将模板的一部分添加到最终的HTML/XML).有人可以为我推荐一个好的选项,并添加一个或多或少这样的代码示例的链接,以及有关如何使用推荐的组件满足我的需求的一些文档?

我还需要使用循环来复制表行,甚至整个表(在HTML版本中)和复杂元素(在XML版本中).

Mal*_*kov 17

有一篇很好的文章如何使用RazorView引擎:如何使用RazorEngine 创建可本地化的文本模板引擎


Pao*_*sco 16

那么T4,文本模板转换工具包呢?它应该符合您的要求,并且内置在Visual Studio中.

伟大的T4资源:

Oleg Sych的博客

T4编辑

T4工具箱


Sco*_*pey 10

SmartFormat是一个非常简单的库,可以满足您的所有要求.它专注于撰写"自然语言"文本,非常适合从列表生成数据或应用条件逻辑.

语法非常相似String.Format,并且非常简单易学易用.以下是文档中语法的示例:

Smart.Format("{Name}'s friends: {Friends:{Name}|, |, and}", user)
// Result: "Scott's friends: Michael, Jim, Pam, and Dwight"
Run Code Online (Sandbox Code Playgroud)

该库是开源的,易于扩展,因此您还可以使用其他功能对其进行增强.


Rob*_*sor 6

你看过XSLT了吗?您必须从XML开始使用源数据格式,可能是通过xmlserializing您的数据对象.你可以轻松地做循环if语句!

Kathleen Dollard有一本关于通过XSLT生成代码的书.

就个人而言,我是T4的忠实粉丝(特别是在生成C#时),但您可能会发现,因为XML和HTML是您的输出类型,所以XSLT可以满足您的要求.而且它非常跨平台.

  • XSLT的问题是XSLT 1.x使一些简单的任务*痛苦*和XSLT 2.x是一个神话(或者,至少在我的堆栈中不可用):( (4认同)