【问题标题】:String Templatization Engine for .Net.Net 的字符串模板化引擎
【发布时间】:2009-02-10 15:35:43
【问题描述】:

我已经满足了将模板化内容与生成填充该内容的动态字段的代码分开存储的需求(想想 word 中的邮件合并)。用例通常围绕这样一个事实,即我想编写可以发送某种类型的动态内容(通常是电子邮件)的代码,我希望允许我的用户在不更改任何代码的情况下进行自定义。

例如,我们向客户发送电子邮件。我们最终会调整发送出去的电子邮件并添加动态内容(例如,我们可能想说“亲爱的 {Contact.FirstName}”)。将这些电子邮件的格式放入数据库或一些 XML 文件中并编写代码分别为其提供所有属性的值是很方便的。因此,创建一个包含内容的 Email.XML,并使用一个引擎将 XML 文件传递​​给 Contact 对象并返回电子邮件的 HTML。从概念上讲,这与在 MVC 模式中分离视图层的目标非常相似(在这种情况下,电子邮件是视图,引擎是控制器,联系人对象是模型)。

看起来 .Net 领域有两个竞争者(都是 java 的端口)(还有更多 here,但它们是相当小众的玩家)。

有没有人使用过这些或其他模板化引擎?在选择时我应该考虑它们之间的主要区别吗

【问题讨论】:

    标签: .net templates template-engine


    【解决方案1】:

    我使用了StringTemplate.NET 并享受了这次体验。他们花了一点时间来适应他们的世界观——像循环这样的事情一开始似乎很神秘。不允许模板调用代码类型违背了大多数其他模板库的纹理。但是一旦你习惯了,他们的决定就会变得有意义并且感觉很自然。

    【讨论】:

      【解决方案2】:

      我刚刚使用了 RegEx.Replace,对于在 { 和 } 之间找到的每个匹配项,我在 Dictionary 中查找标签并执行 ITagParser。

      亲爱的{Salutation} {FamilyName}

      当前日期是 {Now=yyyy-MM-dd}

      其中 = 是一种可选格式。

      证明 3rd 方库的工作量太少了。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-08-23
        • 2020-11-16
        • 1970-01-01
        • 2019-02-08
        • 2015-09-08
        • 1970-01-01
        • 2013-07-09
        相关资源
        最近更新 更多