【问题标题】:Efficient plain text template engine高效的纯文本模板引擎
【发布时间】:2013-04-19 02:50:50
【问题描述】:

我有一个简单的警报系统,可以抓取网络上的号码,将它们与预定义的文本模板混合以获取警报,并将其发送给客户。警报是非常简单的纯文本,所以除了纯文本、数字、简单的函数(例如 ifthenelse),我不会期望太多,越快越好。那么是否有任何现有的开源解决方案呢?谢谢!

【问题讨论】:

标签: c# template-engine


【解决方案1】:

我会为此使用Razor Engine

基于 Microsoft 的 Razor 解析技术构建的模板引擎。 RazorEngine 允许您使用 Razor 语法来构建强大的模板

其页面中的一个简单示例:

string template = "Hello @Model.Name! Welcome to Razor!";
string result = Razor.Parse(template, new { Name = "World" });

result 将是Hello World!欢迎使用 Razor!

【讨论】:

  • 对不起,我刚试了一下,但是对我的使用来说太慢了,完成这个执行需要200毫秒,我需要一个动力不强但足够快的引擎(不到10毫秒为这样的例子)
  • @captivatedbyUBB 您应该在第一次迭代后测量性能。第一个包括 JIT 时间...
  • @captivatedbyUBB:如果不像 I4V 所说的那样衡量模板创建和编译的一次性成本,您应该能够达到 10 毫秒以下。此外,我发现匿名类型会导致 Razor 出现性能问题。动态类型也有同样的问题(那些继承自DynamicObject或实现IDynamicMetaObjectProvider的)。
  • @captivatedbyUBB 你也可以预编译模板。见Razor.CompileRazor.Run
  • RazorEngine 的整个简单接口(例如 Razor.Parse)现在被标记为已弃用。我没弄清楚如何使用新的 API,所以我会进一步搜索,我想......
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-10-28
  • 1970-01-01
  • 2012-10-28
  • 1970-01-01
  • 1970-01-01
  • 2017-07-27
  • 1970-01-01
相关资源
最近更新 更多