对我来说会更有帮助;如果你回答了下面的问题。
XmlSerializer是基于订单的吗? 例如) 我的类/ XML如下所示。物业订单已更改。 这仍然是序列化/反序列化?
public class Movie
{
public string Title { get; set; }
public int Rating { get; set; }
}
XML就像
<?xml version="1.0" encoding="utf-8"?>
<Movie xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Rating>6.9</Rating>
<Title>Starship Troopers</Title>
</Movie>
反序列化过程中会发生什么;如果我的班级没有属性(例如标题),但xml有那个元素?
假设我有超类(A)和超类(A)的两个子类(B,C)。 在运行时,当我得到xml响应时,如何确定我应该在下面传递哪个对象?因为我不知道xml的RootElement(B或C)是什么?
XmlSerializer ser = new XmlSerializer(typeof(B or C)); ??
一个 solution 克服Q2
答案 0 :(得分:1)
回答问题2:您将收到InvalidOperationException。
反序列化期间发生错误。最初的例外是 可以使用InnerException属性。
见这里:msdn
回答问题3:
您的问题的解决方案是实现IXmlSerializable接口。这将允许您控制整个序列化过程。看看这个代码项目文章 - 这是一个非常好的开始
见这里:codeproject