2014-02-10 38 views
1

我們試圖將Redis ICacheClient與CustomUserSession一起使用,但我們的自定義屬性未被存儲。這個問題似乎在序列化器創建的json中。序列化ServiceStack中的CustomUserSession

這裏測試:

public class CustomUserSession : AuthUserSession 
{ 
    public string Test { get; set; } 
} 

[TestFixture] 
public class UserSessionJsonTest 
{ 
    private CustomUserSession session; 

    [Test] 
    public void CanSerializeToJson() 
    { 
     session = new CustomUserSession() 
     { 
      UserName = "Ivan", 
      Address = "Address1", 
      Test = "123" 
     }; 
     JsConfig<CustomUserSession>.ExcludeTypeInfo = false; 
     JsConfig<CustomUserSession>.IncludeTypeInfo = true; 
     var json = JsonSerializer.SerializeToString(session); 
     Debug.WriteLine(json); 
     Assert.That(json.Contains("123")); 
    } 
} 

測試未被序列所有,任何暗示?

回答

2

在V4中,屬性繼承,因爲AuthUserSession是一個DataContract,其中serialization is opt-in,你需要標記要與[DataMember]序列化的每個屬性,e.g:

public class TestUserSession : AuthUserSession 
{ 
    [DataMember] 
    public string Test { get; set; } 
} 
+1

THX! ServiceStack支持非常棒! –

相關問題