带有可选列表的XML反序列化

时间:2012-12-04 17:26:49

标签: c# .net xml xml-serialization

我试图找出如何处理XML的反序列化。我确实理解如何使用内置的序列化并且之前已经这样做了。

这次我的问题是XML上的一个部分可能是消息列表或单个消息。

编辑:下面的XML片段是来自格式良好的XML文档的片段。收到后,XML将包含消息列表或单个消息。为了清晰和简洁,省略了包含XML。

XML片段看起来像这样......

<messageList>
    <message>message1</message>
    <message>message2</message>
</messageList>

或者像这样...

<message>singleMessage</message>

是否可以使用内置的.Net反序列化来处理这个问题,还是需要手动编写代码呢?

1 个答案:

答案 0 :(得分:0)

试试这个

[XmlRoot("MessageRoot", Namespace = "", IsNullable = false)]
public class MessageRoot
{

    [XmlElement(IsNullable = true, ElementName = "message")]
    public string Message { get; set; }

    [XmlArray("messageList")]
    [XmlArrayItem("message")]
    public string[] Messages { get; set; }
}



   <MessageRoot>   
     <message> message </message>  
     <messageList>
       <message>message1</message>
       <message>message2</message>   
      </messageList>  
   </MessageRoot>