2013-04-25 82 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