微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在C#中使用XML序列化包含元素(而不是根)的属性

我需要生成一个如下所示的 XML

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<inboundMessage xmlns="http://www.myurl.net">
  <header>
    <password>mypwd</password>
    <subscriberId>myuser</subscriberId>
  </header>
  <message xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="myType">
    <eventDate>2012-09-05T12:13:45.561-05:00</eventDate>
    <externalEventId />
    <externalId>SomeIdC</externalId>
  </message>
</inboundMessage>

问题是我不知道如何在我的标签中包含xmlns:xsi =“http://www.w3.org/2001/XMLSchema-instance”xsi:type =“myType”.我需要序列化的类是这样的:

[XmlType("inboundMessage")]
[XmlRoot(Namespace = "http://www.myurl.net")]
public class InboundMessage
{
    [XmlElement(ElementName = "header")]
    public Header _header;
    [XmlElement(ElementName = "message")]
    public List<MyType> _messages;
}

我需要将哪些XmlAttributes添加到我的“_messages”成员中,以便按照我想要的方式进行序列化?

TIA,
埃德

解决方法

像这样使用XmlAttribute:

public class MyType
{
    [XmlAttribute("type",Namespace = "http://www.w3.org/2001/XMLSchema-instance")]
    public string Type { get; set; }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐