0

我正在尝试使用 Nancy 插件Nancy.LightningCache

根据文档,我应该能够轻松设置缓存,如下所示:

引导程序

protected override void ApplicationStartup(TinyIoCContainer container, IPipelines pipelines)
{
    base.ApplicationStartup(container, pipelines);
    this.EnableLightningCache(
            container.Resolve<IRouteResolver>(), 
            ApplicationPipelines, 
            new[] {"id", "claim", "query", "take", "skip"});
}

路线

Get["/profile"] = _ => 
View["UserProfileView", Model].AsCacheable(DateTime.Now.AddSeconds(30)); 

当这条路线被调用时,我得到以下异常。

Microsoft.CSharp.RuntimeBinder.RuntimeBinderException:
'Nancy.Responses.Negotiation.Negotiator' does not contain a definition for 'AsCacheable'

有任何想法吗?

4

2 回答 2

2

我刚刚一起破解了这个https://gist.github.com/4191120并且它起作用了。全部使用 0.13 nugets

于 2012-12-02T21:20:04.440 回答
0

好的,我知道了。

工作路线

return View["HomeView", (object)Model].AsCacheable(DateTime.Now.AddMinutes(1));

object您可以看到,为了满足AsCachable扩展方法的签名,我被迫将我的模型显式转换为 an 。

该问题仅在运行时出现,因为我的模型是一个ExpandoObjectdynamic类型。

于 2012-12-03T11:28:39.667 回答