c#:将具有接口的对象序列化为可读格式的属性

时间:2013-02-22 13:10:42

标签: c# serialization

我搜索过,但找不到令人满意的答案。我知道有类似的序列化器:DataContractJsonSerializer,JavaScriptSerializer来做到这一点。但是这些需要指定'KnownType'的奇怪要求,这在我的场景中是不可能的,因为我序列化的对象属于通用库,并且接口的实际实现可能来自客户端。 有什么建议吗?

2 个答案:

答案 0 :(得分:1)

ServiceStack有一个JSON序列化程序,不需要指定已知类型:

var json = JsonSerializer.SerializeToString(myObj);

或者使用扩展方法,您可以在任何对象上调用ToJson:

var json = myObj.ToJson();

答案 1 :(得分:0)

Json.Net有一个方法SerializeObject。这可以帮到你。

它的签名是:

public static string SerializeObject(object value);

用法:

using Newtonsoft.Json;

...

string jsonData = JsonConvert.SerializeObject(obj);