DataContractJsonSerializer - 反序列化为非属性/继承的类

时间:2015-08-04 12:22:25

标签: c# json attributes datacontractserializer json-deserialization

我想使用c#DataContractJsonSerializer将一些json反序列化为缺少序列化属性的类型。此类型还从多个接口继承,每个接口都具有许多公共属性。

我无法改变我尝试反序列化的类型,也不能改变它继承的接口 - 我正在尝试用c#做什么?

1 个答案:

答案 0 :(得分:1)

  

是我在c#中尝试做的事情吗?

您所要做的就是编写一小段代码进行测试。

DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(CL1));
var m = new MemoryStream(Encoding.UTF8.GetBytes(@"{""I1"":""test1"",""I2"":""test2""}"));
var cl1 = ser.ReadObject(m) as CL1; 
Console.WriteLine(cl1.I1 + " " + cl1.I2);

所以答案是

public interface II1
{
    string I1 { set; get; }
}
public interface II2
{
    string I2 { set; get; }
}
public class CL1 : II1, II2
{
    public string I1 { set; get; }
    public string I2 { set; get; }
}