为了账号安全,请及时绑定邮箱和手机立即绑定

将类A继承的对象列表序列化为xml,因此xml中元素的名称为B,C,D

将类A继承的对象列表序列化为xml,因此xml中元素的名称为B,C,D

C#
BIG阳 2021-06-18 17:00:32
使用DataContractSerializer我想序列化从 A 类继承的对象列表。这些对象在不同的程序集中,假设它们属于 B、C 和 D 类。我已将 B、C 和 D 添加到已知类型的数据中合约序列化器。我能够序列化列表,但序列化的结果如下所示:<SerializedListObjects>   <A i:type="B">   <A i:type="C"></SerializedListObjects>我想要的是:<SerializedListObjects>   <B>   <C></SerializedListObjects>B 和 C 中可能有一些属性具有从 A 继承的信息。这是我的基类:  [Serializable]  [DataContract(Name = "A")]  public abstract class A  {  }这是派生类定义的示例。  [Serializable]  [DataContract(Name = "B")]  public class B : A  {  }由于派生类在不同的程序集中,我不能在它们的基类或包含派生类名称的序列化类中放置任何属性(例如[XmlElement("B", Type = typeof(ChildB))]) - 我无法访问那里的派生类。是否可以?虽然我目前正在使用DataContractSerializer,但我愿意XmlSerializer在必要时切换到另一个 XML 序列化程序。
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 129 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信