0

ナンシーアドインを使おうとしています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ナゲットを使用

于 2012-12-02T21:20:04.440 に答える
0

はい、わかった。

作業ルート

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

拡張メソッドobjectのシグネチャを満たすために、モデルをに明示的にキャストする必要があることがわかります。AsCachable

私のモデルはタイプExpandoObjectであるため、問題は実行時にのみ発生しますdynamic

于 2012-12-03T11:28:39.667 に答える