Session 및 OutputCache에 Couchbase가 사용됩니다.세션에서 ModelBinder를 사용하여 전달 된 복합 개체 속성에 따라 달라지는 OutputCache
이 컨텍스트에서는 세션에서 값을 검색하는 사용자 지정 모델 바인더를 사용하여 메서드에 전달되는 복잡한 개체를 캐시 할 수 있습니까?
[HttpGet]
[OutputCache(CacheProfile = "MyObjectsCache", VaryByParam = "myParam")]
public ActionResult Index([ModelBinder(typeof (CustomVariableSessionModelBinder<MyClass>))] MyClass myParam)
{
참고 :
이
내가OutputCache
속성을 캐시 할 방법의 서명입니다 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
을 사용해야합니다?