2009-03-04 35 views
6

Hiện tại tôi đang sử dụng XmlSerializer để tuần tự hóa và deserialize một đối tượng. Các xml được tạo ra theo một thứ tự không xác định mà là dễ hiểu nhưng làm cho nó khó chịu khi so sánh các phiên bản của đối tượng, vì thứ tự của các thuộc tính là khác nhau mỗi lần. Vì vậy, ví dụ tôi không thể sử dụng một công cụ khác biệt bình thường để xem bất kỳ sự khác biệt.Bất kỳ cách nào để tạo xmlSerializer đầu ra xml theo một thứ tự xác định?

Có cách nào dễ dàng để tạo xml của tôi theo cùng một thứ tự mỗi lần, không phải tự viết các phương thức ReadXml và WriteXml không? Tôi có rất nhiều thuộc tính trên lớp và thêm các thuộc tính mới vào mọi lúc, vì vậy, không muốn viết và sau đó duy trì mã đó.

(C# .net 2.0)

+0

Bạn có thể cung cấp ví dụ sao chép "thứ tự không xác định" này không? Tôi đã không bao giờ nhìn thấy nó xảy ra, và tôi không thấy làm thế nào XML Serializer sẽ có thể deserialize kết quả nếu nó đã xảy ra. –

Trả lời

9

Thuộc tính XmlElement có order property. Bạn có thể sử dụng nó như là một sự khởi đầu.

Nếu bạn cần tìm sự khác biệt trong tệp Xml, bạn có thể muốn xem this.

0

ps: Tôi không tin XML được tạo bởi XmlSerializer theo thứ tự không xác định. Nó có thể không có giấy tờ, nhưng nó được biết đến. Tôi tin rằng trong trường hợp không có thuộc tính Order, XmlSerializer sẽ tuần tự hóa tất cả các thuộc tính công khai, được sắp xếp alpha theo tên prop và sau đó là tất cả các trường công khai, được sắp xếp theo tên alpha.

Các vấn đề liên quan