6月 05

写了个简单的代码生成工具。不愿意使用拼接字符串的方式,所以将目光投向了Razor

在.Net Framework时代,我们可以直接只用 RazorEngine 做执行输出。

但是我试了发现不支持.Net Core大的版本,所以上github看了看,发现了替代品RazorLight

 

使用起来很简单,在Nuget上有包

Install-Package RazorLight

一般调用方式

            var engine = new RazorLightEngineBuilder()
              .UseFilesystemProject(@"D:\Test\CoreTest\ConsoleApp.RazorConsole")
              .UseMemoryCachingProvider()
              .Build();
            string result = engine.CompileRenderAsync("Ocean.cshtml",
                new { Name = "Ocean" }).Result;

Ocean.cshtml是我的razor文件

@{
}
这是一个测试,我是 @Model.Name

 

另外我做了一个简单封装

        public static string ExeRazor(string template,object obj)
        {
            var path = IOHelper.RootDevPath; 
            var engine = new RazorLightEngineBuilder()
             .UseFilesystemProject(path)
             .UseMemoryCachingProvider()
             .Build(); 
            string result = engine.CompileRenderAsync(template, obj).Result;
            return result;
        }

 

好了,这样就可以使用razor做一些string的输出了,比拼接字符串是方便了不少。

最关键的是,我可以直接打包进dll中,既干净又清爽,实在是居家旅行之良品。

 

项目官网上有更多的使用方法。

项目地址:https://github.com/toddams/RazorLight

written by ocean


Leave a Reply