【发布时间】:2009-05-17 22:13:59
【问题描述】:
单元测试我的序列化代码我发现一个失败,因为我的属性以不同的顺序列出(我只是比较 XDocument.ToString() 值),虽然我可以解决这个问题,但这对我来说并不重要元素或属性以什么顺序出现,只要它们都在正确的层次结构中具有正确的名称。我可能可以编写一个方法来做到这一点,但我想知道是否有一种我不知道的简单内置方法。
【问题讨论】:
标签: c# xml linq-to-xml
单元测试我的序列化代码我发现一个失败,因为我的属性以不同的顺序列出(我只是比较 XDocument.ToString() 值),虽然我可以解决这个问题,但这对我来说并不重要元素或属性以什么顺序出现,只要它们都在正确的层次结构中具有正确的名称。我可能可以编写一个方法来做到这一点,但我想知道是否有一种我不知道的简单内置方法。
【问题讨论】:
标签: c# xml linq-to-xml
XNode 有一个 DeepEquals 函数应该可以解决问题。
http://msdn.microsoft.com/en-us/library/system.xml.linq.xnode.deepequals.aspx
更新:
DeepEquals 函数似乎并不总是正常工作。您最好实施自己的比较例程。
http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=400469
【讨论】:
除了“亚当露丝”,我阅读了微软链接,这篇博文非常有用..
埃里克·怀特: http://blogs.msdn.com/b/ericwhite/archive/2009/01/28/equality-semantics-of-linq-to-xml-trees.aspx
【讨论】:
试试 Microsoft XML Diff and patch 实用程序here 或谷歌“Xml Diff”
【讨论】: