DataContractJsonSerializer - 反序列化为 non-attributed/inherited class
DataContractJsonSerializer - deserializing to non-attributed/inherited class
我想使用 c# DataContractJsonSerializer 将某些 json 反序列化为缺少序列化属性的类型。这种类型还继承自多个接口,每个接口都有许多 public 属性。
我不能改变我试图反序列化的类型,也不能改变它继承的接口 - 我想在 c# 中做的是什么?
is what I'm trying to do possible in 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; }
}
我想使用 c# DataContractJsonSerializer 将某些 json 反序列化为缺少序列化属性的类型。这种类型还继承自多个接口,每个接口都有许多 public 属性。
我不能改变我试图反序列化的类型,也不能改变它继承的接口 - 我想在 c# 中做的是什么?
is what I'm trying to do possible in 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; }
}