【发布时间】:2013-08-08 17:26:41
【问题描述】:
我需要创建一些带有嵌套属性的 XML,看起来类似于:
<1>
<1a>
Some stuff
</1a>
<1b>
Some stuff
<1c>
Some stuff
</1c>
</1b>
</1>
通常为了创建嵌套元素,对象内部有嵌套类。然而,我需要创建的 XML 会产生一个内部有 20 多个嵌套类的对象,这对我来说很难闻。没有一个元素是重复的,所以我认为没有必要创建所有这些类。
有没有办法告诉 XML 序列化程序嵌套元素?例如在这样的类中的一个属性上:
public class XMLExport
{
[DataMember(Order = 0, Name = "1")]
public string 1 { get; set; }
[DataMember(Order = 1, Name = "1/1a")]
public string 1a { get; set; }
[DataMember(Order = 2, Name = "1/1b")]
public string 1b { get; set; }
[DataMember(Order = 3, Name = "1/1b/1c")]
public string 1c { get; set; }
}
【问题讨论】:
-
你可以使用 IXmlSerializable 并实现 WriteXml 方法吗? msdn.microsoft.com/en-us/library/…
-
您是否有机会使用 XDocument 代替?使用 XDocument 比使用 XML 序列化程序要容易得多,而且您可以轻松嵌套 XElement。
-
@leon 我可以,我只是希望避免它。需要生成的 XML 相当复杂,需要一些工作
-
@ZachSmith 当然,我的做法没有限制,我只是在寻找最好的方法。谢谢 我去看看
-
请将您的解决方案发布为答案,而不是更新您的问题。这是为了帮助未来的访客并避免混淆。谢谢。
标签: c# xml serialization xml-serialization