需要序列化为 JSON 字符串并将 JSON 字符串反序列化为对象。
这里是我的课堂流程。
[DataContract]
public class BatchItem_NF : INF
{
[DataMember]
public IDebtor Debtor { get; set; }
[DataMember]
public IList<IDebtor> AllDebtors
{
get
{
return _debtors;
}
}
}
[DataContract]
public class Debtor : IDebtor
{
[DataMember]
public IAddress Address { get; set; }
[DataMember]
public string Name { get; set; }
}
[DataContract]
public class Address : IAddress
{
[DataMember]
public string Street { get; set; }
[DataMember]
public string City { get; set; }
}
这是我试图序列化但不起作用的内容
private string BatchItem_NFSerialization(INF Alldebtors)
{
Type t = Alldebtors.GetType();
extraTypes1 = t.GetProperties()
.Where(p => p.PropertyType.IsInterface)
.Select(p => p.GetValue(Alldebtors, null).GetType())
.ToArray();
using (MemoryStream ms = new MemoryStream())
{
DataContractJsonSerializer serializer = new DataContractJsonSerializer(t, extraTypes1);
serializer.WriteObject(ms, ((BatchItem_NF)Alldebtors));
retVal = Encoding.Default.GetString(ms.ToArray());
}
}
它抛出以下错误:输入“地址”,数据合同名称为“地址:http : //schemas.datacontract.org/2004/07/ ”是不期望的。如果您正在使用 DataContractSerializer 或将任何静态未知的类型添加到已知类型列表中,请考虑使用 DataContractResolver - 例如,通过使用 knownTypeAttribute 属性或将它们添加到传递给序列化程序的已知类型列表中
白衣染霜花
相关分类