2013-04-25 28 views
2

我有一个简单的警报系统,可以抓取Web上的数字,将它们与预定义的文本模板混合以获取警报,并将其发送给客户端。警告是非常简单的纯文本,所以除了纯文本,数字,简单功能(比如ifthenelse),我不会期望其他任何东西,越快越好。那么是否有任何现有的开源解决方案?谢谢!高效的纯文本模板引擎

+0

你有没有看过T4? http://www.hanselman.com/blog/T4TextTemplateTransformationToolkitCodeGenerationBestKeptVisualStudioSecret.aspx – DarkSquirrel42 2013-04-25 09:21:06

回答

8

我会用Razor Engine这个。

基于微软Razor解析技术的模板引擎。该RazorEngine允许您使用剃刀语法来构建健壮的模板

一个简单的例子,从它的页面:

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

result的Hello World!欢迎来到剃刀!

+1

对不起,我只是试了一下,但是对我的使用来说太慢了,花了200毫秒来完成这个执行,我需要一个不像功耗的引擎,但足够快(对于这样的例子,少于10毫秒) – captivatedbyUBB 2013-04-25 09:41:09

+1

@captivatedbyUBB您应该在第一次迭代后测量性能。第一个包括JIT时间...... – I4V 2013-04-25 09:49:38

+0

@captivatedbyUBB:如果不测量模板创建和编译的一次性成本,就像I4V所说的那样,你应该能够在10ms以内达到好的效果。另外,我发现匿名类型会导致Razor出现性能问题。动态类型有同样的问题(那些从'DynamicObject'继承或实现'IDynamicMetaObjectProvider')。 – 2013-04-25 09:56:08