2014-02-25 2 views
1

이전에는 고객의 AuthSession을 캐시에 저장할 수 있었지만 업그레이드 한 후에는 내 클래스 CustomUserSession이 아닌 IAuthSession 인터페이스의 속성 만 저장합니다.ServiceStack 4로 업그레이드 한 후 사용자 지정 UserSession을 캐시에 저장하려면 어떻게해야합니까?

코드는 여기에 실행 :

public class AcmeUserSession : ServiceStack.AuthUserSession, IAcmeUserSession 
{ 

    public override void OnAuthenticated(IServiceBase authService, IAuthSession session, IAuthTokens tokens, Dictionary<string, string> authInfo) 
    { 

    //code to update session object 

    authService.SaveSession(this);  //*****HERE***** 

    } 
} 

이 코드는 변경되지 않았습니다,하지만 지금은 단지 그것을 사용으로 AcmeUserSession에서 IAuthSession에서 속성이 아닌 사용자 정의 속성이 저장된 객체에서 레디 스에서 볼 때 있다.

도와주세요!

감사합니다,

리처드

+0

수있는 사람 업그레이드시 왜 깨졌을 지에 대한 힌트를주세요. – richardwhatever

+1

그렇지 않다면 사용자 정의 사용자 세션에 [DataMember] 특성을 추가해야합니다. http://stackoverflow.com/a/22018948/85785 – mythz

+0

그게 전부입니다. 감사 mythz! – richardwhatever

답변

1

Mythz 완벽하게이 질문에 대답했다. 내가 직접 그를 인용 : AuthUserSession가 DataContract이며 속성은 이제 V4에 상속 때문에

, 당신은 또한 [DataMember를] 각 멤버를 표시해야합니다, 예 :

public class CustomUserSession : AuthUserSession 
{ 
    [DataMember] 
    public string Hello { get; set; } 
}