利用RazorEngine更加直觀的格式化字串

2021-07-11 09:07:02 字數 1182 閱讀 1827

在.net中,我們可以使用string.format

函式來格式化字串,乙個簡單的示例如下:

stringtemplate = "hello ! welcome to c#!";

stringresult = string.format(template, "world");

這種格式化的方式對於字串模板較短的時候還算比較簡潔,但是一旦遇到像郵件這樣比較大的模板的時候,一大堆的,,就有點令人眼花繚亂了。這種情況下,往往需要一種有意義的變數來代表這種, 的數字。

stringtemplate = "hello %name%! welcome to c#!";

stringresult = template.replace("%name%", "world");

這種方式的通用性不是很強,但比較簡單,今天在這裡推薦乙個通用性較好的方案——razorengine。

stringtemplate = "hello @model.name! welcome to razor!";

stringresult = razor.parse(template, new);

當然,razorengine的功能遠不止如此,更多的是用它打造**生成器,感興趣的朋友可以參看下這篇文章:

重複輪子

我一般用到這種大文字模板的地方往往是自己編寫一些小工具時,動態生成並呼叫批處理檔案。本身razorengine能滿足我的要求,但我一般喜歡生成乙個單一的exe檔案,然後把exe檔案丟到需要批量處理的資料夾中執行,並不希望順便帶上幾個dll,也用不到razorengine裡面的那些高階功能。因此,我這裡就借鑑了一下razorengine的語法,做了乙個重複輪子:

staticclassstrformater

staticstringgetvalue(matchmatch, objectdata)

catch(exception)'的值

", paraname);

thrownewargumentexception(errmsg);}}

} 使用這個類也非常簡單:

stringtemplate = "hello @name! welcome to c#!";

stringresult = strformater.format(template, new);

模板中把要替換的屬性前面加乙個'@'符號即可,並不需要像razorengine那樣加model。

RazorEngine 未解決,留底

templateserviceconfiguration templateconfig new templateserviceconfiguration razor.settemplateservice newtemplateservice templateconfig string templat...

模版引擎RazorEngine簡介

asp.net mvc的razor想必大家都比較熟悉,這裡介紹乙個獨立於asp.net的razorengine。razorengine是乙個開源的專案,它的基礎就是asp.net mvc的razor。github專案位址。您可以在windows console或者windows forms使用它。下...

在非MVC下RazorEngine的使用

1 通過nuget安裝razorengine 2 來看 後台部分 string cshtml file.readalltext fullpath 得到檔案內容 string cache cache encryphelper.md5 cshtml string myhtml razor.parse c...