首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Razor,如何缓存ITemplate

Razor,如何缓存ITemplate
EN

Stack Overflow用户
提问于 2012-10-03 15:16:44
回答 1查看 336关注 0票数 0

我正在使用RazorEngine来呈现模板(我们将其用作时事通讯)。RazorEngine 3 (https://github.com/Antaris/RazorEngine)的一个优点是你可以使用:-模板布局-包含模板

但是,要使其正常工作,您需要创建一个动态解析器服务。

这将解析完整的模板并将其作为compiledRazorTemplate返回给我:

代码语言:javascript
复制
ITemplate rTemplate = service.Resolve(templateId, parameters);

然后我执行rTemplate.Run()

它调用:

代码语言:javascript
复制
public static string Run(this ITemplate template)
{
    ExecuteContext context = new ExecuteContext();
    return template.Run(context);
}

问题是这不会缓存我的模板!我真的需要缓存它们。但是Razor.Parse(template,model,cacheName)只接受字符串模板。

如何解决?

EN

回答 1

Stack Overflow用户

发布于 2013-01-13 20:39:16

缓存ITemplate实例的点并不重要,如果您多次运行一个实例,那么它的输出可能会出现问题。当您使用Resolve(name)时,它会使用您的ITemplateResolver来定位模板内容,然后编译该模板。由于您已经提供了一个名称,因此它将针对该名称缓存模板Type。随后对Compile(name)Resolve(name)等的调用将导致使用现有的命名模板类型,而不是再次重新编译模板。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12703599

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档