1

我有一个不可变对象,我使用 servicestack 的框架将其序列化为 json。现在我想将此 json 字符串反序列化为真实对象。但我的对象是不可变的。

有没有办法告诉 servicestack json 反序列化器使用构造函数?我不想在我的属性中添加公共集。

我找到了一种使用 Newtonking Json Deserializer 的方法,但是 servicestack 中是否有等价物? http://james.newtonking.com/projects/json/help/index.html?topic=html/T_Newtonsoft_Json_JsonConstructorAttribute.htm

谢谢

4

1 回答 1

2

我不知道可以启用此功能的简单配置,但您可以轻松编写自定义反序列化器:

JsConfig<MyRequestClass>.DeSerializeFn = jsonString => {
    var obj = JsonObject.Parse(jsonString);
    return new MyRequestClass(obj.Get("PropertyA"), obj.Get("PropertyB"), ...);
}

有关更多信息,请参阅此相关答案

于 2013-08-01T23:32:06.373 回答