Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c#:将具有接口的对象序列化为可读格式的属性_C#_Serialization - Fatal编程技术网

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

c#:将具有接口的对象序列化为可读格式的属性,c#,serialization,C#,Serialization,我搜索了一下,但找不到满意的答案。我知道有很多序列化程序,比如:DataContractJsonSerializer、JavaScriptSerializer。但这需要一个奇怪的要求,即指定“KnownType”,这在我的场景中是不可能的,因为我序列化的对象属于泛型库,接口的实际实现可能来自客户端。 有什么建议吗?有一个JSON序列化程序,它不需要指定已知类型: var json = JsonSerializer.SerializeToString(myObj); 或者使用扩展方法,您可以在任

我搜索了一下,但找不到满意的答案。我知道有很多序列化程序,比如:DataContractJsonSerializer、JavaScriptSerializer。但这需要一个奇怪的要求,即指定“KnownType”,这在我的场景中是不可能的,因为我序列化的对象属于泛型库,接口的实际实现可能来自客户端。 有什么建议吗?

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

var json = JsonSerializer.SerializeToString(myObj);
或者使用扩展方法,您可以在任何对象上调用ToJson:

var json = myObj.ToJson();
具有不需要指定已知类型的JSON序列化程序:

var json = JsonSerializer.SerializeToString(myObj);
或者使用扩展方法,您可以在任何对象上调用ToJson:

var json = myObj.ToJson();

Json.Net
有一个方法
SerializeObject
。这将为你做这项工作

签名是:

public static string SerializeObject(object value);
用法:

using Newtonsoft.Json;

...

string jsonData = JsonConvert.SerializeObject(obj);

Json.Net
有一个方法
SerializeObject
。这将为你做这项工作

签名是:

public static string SerializeObject(object value);
用法:

using Newtonsoft.Json;

...

string jsonData = JsonConvert.SerializeObject(obj);