【问题标题】:Serializing CustomUserSession in ServiceStack在 ServiceStack 中序列化 CustomUserSession
【发布时间】:2014-02-11 00:56:30
【问题描述】:

我们正在尝试将 Redis ICacheClient 与 CustomUserSession 一起使用,但我们的自定义属性并未存储。问题似乎出在序列化程序创建的 json 中。

这里是一个测试:

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"));
    }
}

测试根本没有序列化,有什么提示吗?

【问题讨论】:

    标签: servicestack servicestack-text


    【解决方案1】:

    在v4中,属性是继承的,因为AuthUserSession是一个DataContract,其中serialization is opt-in,你需要用[DataMember]标记你想要序列化的每个属性,例如:

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

    【讨论】:

    • 谢谢! ServiceStack 支持很棒!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-06-06
    • 2016-10-21
    • 2018-02-26
    • 2013-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多