1

这对我会更有帮助;如果您确实回答了以下问题。

  1. 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>
    
  2. 反序列化过程中会发生什么;如果我的班级没有属性(例如标题)但 xml 有该元素?

  3. 假设我有超类(A)和那个超类(A)的两个子类(B,C)。在运行时,当我得到 xml 响应时,如何确定应该在下面传递哪个对象?因为我不知道 xml 的 RootElement(B 或 C)是什么?

     XmlSerializer ser = new XmlSerializer(typeof(B or C)); ??
    



克服 Q2 的一种解决方案


4

1 回答 1

1

对问题 2 的回答:您将收到 InvalidOperationException。

反序列化过程中发生错误。原始异常可使用 InnerException 属性获得。

看这里:msdn

对问题 3 的回答:

您的问题的解决方案是实现 IXmlSerializable 接口。这将允许您控制整个序列化过程。看看这篇 codeproject 文章 - 这是一个很好的开始

看这里:代码项目

于 2012-12-11T19:32:19.150 回答