如何使用System.Runtime.Serialization.Json命名空间在c#中部分反序列化对象

本文关键字:中部 反序列化 对象 命名空间 System 何使用 Runtime Serialization Json | 更新日期: 2023-09-27 18:27:30

这可能太麻烦了,但我正在尝试反序列化一个对象,它看起来像这样:

{
"Status": { ... a status object ... }
"Data" : {... could be any one of 10 other data classes I have ... }
}

我想将这个对象反序列化为一个响应类,如下所示:

public class Response
{
        public Status Status;
        public Stream Data;
}

然后稍后将Data属性反序列化到另一个类中。但是,如果我将数据属性的类型设置为Stream,那么在尝试反序列化时会出现安全异常。同样,如果我将其设为字符串,那么反序列化只会在数据对象上调用toString()方法(在反序列化之后),并将其作为属性,这没有帮助。

有什么方法可以完成这样的事情吗?我试图避免有10个不同的类,它们看起来都很像Response,但Data属性的类型不同。如果有一种方法可以动态设置Data属性的类型,也可以解决这种情况。

谢谢你的帮助!

如何使用System.Runtime.Serialization.Json命名空间在c#中部分反序列化对象

我总是使用Newtonsoft.Json.dll来解决这个问题。