我比較2點的對象(任何,但兩者相同,型)他們兩個序列化到XML和使用比較.NET的XmlSerializer類的字符串。假設每個屬性的所有值在兩個對象中都是相同的,輸出字符串是否保證相同?或者是否有可能在輸出中屬性的順序不總是相同的(對於相同的對象類型,大約在同一時間序列化)?威爾XmlSerializer的總是輸出相同的字符串對於具有相同值的相同類型的任意2個不同的對象?
換句話說,可以在輸出最終會是這樣的:
"...<SomeProperty>1</SomeProperty><OtherProperty>abc</OtherProperty>..."
和
"...<OtherProperty>abc</OtherProperty><SomeProperty>1</SomeProperty>..."
我知道屬性可以用來指定正是爲了在序列化的屬性,而是因爲這個比較正在對(相同)任意類型的2個對象進行,這些屬性可能不會在那裏。
我假設的輸出格式將是任何給定類型一致,即使沒有預見或明確的排序屬性控制,但我似乎無法找到類文檔中的任何官方的確認。
XML是由定義無序,所以我不會假定以相同的順序XmlSerializer的_always_輸出特性。你也可能遇到空白區別。我會選擇一種比較兩個通用對象的不同方法。 –
@丹斯利 - 它不是那麼簡單。 XML工具確實支持各種級別的文檔訂單。這裏更重要的是串行器在這方面是否可能是非確定性的。在理論上儘可能實際但很難想象。 –