想要以特定方式反序列化 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; }
}
感谢。
您可以实现 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);
}
}