在以前的版本中,可以使用Parse()
来完成工作。
请参阅https://razorengine.codeplex.com/
上的旧文档string template = "Hello @Model.Name! Welcome to Razor!";
string result = Razor.Parse(template, new { Name = "World" });
性感。但是现在只有Run()和RunCompile()。并且要使Run()工作,模板需要已经编译 - 我不能仅在模板中传递模板的名称。
由于我确实有几乎没有重复使用的剃刀模板,我希望能够不必将这些模板编译成动态程序集并将它们加载到应用程序域中。临时文件问题是另一个原因。
使用RazorEngine仍然可以吗?
答案 0 :(得分:0)
不必将这些模板编译成动态程序集
使用RazorEngine仍然可以吗?
不,从来没有。 Parse将编译模板,加载并执行它与RunCompile完全相同。更糟糕的是,Parse没有缓存模板,因此甚至无法访问加载的程序集(=泄漏的内存)
我无法仅在模板中传递模板的名称
如果您将using RazorEngine.Templating
添加到文件顶部,则可以通过扩展方法。你可以使用其中一个" RunCompile"快速入门的示例:https://github.com/Antaris/RazorEngine#quickstart
我确实有剃须刀模板几乎没有重复使用
您应该查看隔离API并不时重新启动隔离的AppDomain。另一方面(如果您不想支付AppDomain边界的费用),您可以自己处理AppDomain重启并使用常规API。
希望这有帮助,
matthid(披露:RazorEngine撰稿人)