私たちはSessionとOutputCacheにCouchbaseを使用しています。セッションからModelBinderを使用して渡された複雑なオブジェクトプロパティによって変化するOutputCache
このコンテキストでは、Sessionから値を取得するカスタムモデルバインダーを使用して、メソッドに渡される複雑なオブジェクトをキャッシュする方法を教えてください。
これは私がOutputCache
属性をキャッシュするメソッドのシグネチャです:
[HttpGet]
[OutputCache(CacheProfile = "MyObjectsCache", VaryByParam = "myParam")]
public ActionResult Index([ModelBinder(typeof (CustomVariableSessionModelBinder<MyClass>))] MyClass myParam)
{
注:ModelBinderは私超えての理由のために、ここで使用されていると私はそれを変更することはできません。
MyClassはIDを持つ複合オブジェクトです。私はキャッシング識別子としてIDを使用したいと思います。
public class MyClass
{
public int Id{get;set;}
//Other Properties
これは、オブジェクトがセッションから取得されている方法です。
var sessionKey = typeof (MyNamespace.MyClass).FullName;
var httpContext = HttpContext.Current;
MyNamespace.MyClass newObject = null;
if (httpContext.Session != null)
{
newObject = httpContext.Session[sessionKey] as MyNamespace.MyClass;
}
それは、このシナリオのためにヨーヨー使用VaryByParam
は可能ですか私はVaryByCustom
を使用する必要がありますか?