想要以特定方式反序列化 XML 以对象

本文关键字:反序列化 XML 方式 对象 | 更新日期: 2023-09-27 18:34:56

我正在尝试将XML反序列化为模型。例如,我有:

<A>
    <B id=1></B>
    <B id=2></B>
    <B id=3></B>
</A>

是否可以在不创建模型 B 的情况下获取 B 的 id?所以我想最后有这样的东西:

public class A {
    [XmlAttribute(B/@id)]
    public List<int> ids { get; set; }
}

感谢。

想要以特定方式反序列化 XML 以对象

您可以实现 ISerializable 接口来添加自定义序列化/反序列化。

http://msdn.microsoft.com/en-us/library/ty01x675.aspx

[Serializable]
public class MyObject : ISerializable 
{
  public int n1;
  public int n2;
  public String str;
  public MyObject()
  {
  }
  protected MyObject(SerializationInfo info, StreamingContext context)
  {
    n1 = info.GetInt32("i");
    n2 = info.GetInt32("j");
    str = info.GetString("k");
  }
[SecurityPermissionAttribute(SecurityAction.Demand, 
SerializationFormatter =true)]
public virtual void GetObjectData(SerializationInfo info, StreamingContext context)
  {
    info.AddValue("i", n1);
    info.AddValue("j", n2);
    info.AddValue("k", str);
  }
}
相关文章: