XML序列化 - 在根元素下直接呈现对象列表 - XML - 元素

3
以下模型类序列化为:
    [XmlRoot]
    public class A
    {
        [XmlAttribute]
        public string Period { get; set; }

        public List<C> B { get; set; }

    }

<?xml version=1.0>
<A Period="Today">
 <B>
    <C>
    </C>
    <C>
    </C>
  </B>
</A>

现在,我不希望<B> (对象列表应直接列在XmlRoot下面)。
生成的XML应该像这样:
<A Period="Today">
  <C>
  </C>
  <C>
  </C>
</A>

有什么想法如何解决这个问题?
1个回答

5

将列表设置为XML元素。这将强制呈现它的元素:

[XmlRoot]
public class A
{
    [XmlAttribute]
    public string Period { get; set; }

    [XmlElement("C")]
    public List<C> B { get; set; }

}

这仍然使我在B节点下面有一个C节点。我根本不想要B节点。 - now he who must not be named.
1
@nowhewhomustnotbenamed,我第一次读错了你的问题。已更新。 - Andrei V
只是好奇:你能告诉我你从哪里读到或知道这个信息的吗?有什么进一步挖掘此信息的参考资料吗? - now he who must not be named.
1
@nowhewhomustnotbenamed,我最近也遇到了同样的问题,所以我记得它。我搜索了解决问题的问题:https://dev59.com/QnI-5IYBdhLWcg3wHUnP。请查看此处列出的属性:http://msdn.microsoft.com/en-us/library/System.Xml.Serialization(v=vs.110).aspx。下次可能会派上用场。 :) - Andrei V
1
很高兴我能帮到你。 :) - Andrei V

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接