使用xmlserializer从xml中排除根节点

时间:2018-01-25 10:15:30

标签: c# xml xmlserializer

我有一个嵌套类,我使用xmlserializer将其转换为xml。

public class RequestModel{

        [XmlElement("message", Namespace = "http://www.origostandards.com/schema/mtg/v2")]
        public Message message { get; set; }

        public RequestModel()
        {
            this.message = new Message();
        }
        public class Message
        {
           //other constructor here etc
        }
}

当它序列化时,所有编译都没有问题,但输出如下:

<RequestModel>
   <mtg:message>
   ...
   </mtg:message>
</RequestModel>

有没有办法从序列化中排除类名,以便消息成为顶级节点,输出看起来像:

<mtg:message>
  ...
</mtg:message>

我尝试添加一个布尔值以显示节点以及XmlIgnore和XmlRoot,但这些属性并不适合我的解决方案。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

尝试不同的c#名称空间:

namespace RequestA
{
    public class RequestModel
    {

        [XmlElement("message", Namespace = "http://www.origostandards.com/schema/mtg/v2")]
        public Message.Message message { get; set; }

        public RequestModel()
        {
            this.message = new Message.Message();
        }
     }
}
namespace RequestB
{

    public class RequestModel
    {
        [XmlElement("message", Namespace = "http://www.origostandards.com/schema/mtg/v2")]
        public Message.Message message { get; set; }

        public RequestModel()
        {
            this.message = new Message.Message();
        }
    }
}
namespace Message
{
        public class Message
        {
            //other constructor here etc
        }

}