2009-03-04 4 views
6

현재 XmlSerializer를 사용하여 개체를 serialize하고 deserialize하고 있습니다. xml은 정의 할 수없는 순서로 생성되지만, 객체의 버전을 비교할 때 속성의 순서가 매번 다르므로 성가 시게 만듭니다. 그래서 예를 들어 어떤 차이점을보기 위해 일반적인 diff 도구를 사용할 수는 없습니다.XmlSerializer가 정의 된 순서로 xml을 출력하도록하는 방법은 무엇입니까?

ReadXml 및 WriteXml 메서드를 직접 작성하지 않고 매번 같은 순서로 내 xml을 생성하는 쉬운 방법이 있습니까? 클래스에 많은 속성이 있으며, 새로운 요소를 추가 할 때마다 코드를 작성하고 유지할 필요가 없습니다.

(C# 1 .NET 2.0)

+0

"정의되지 않은 순서"를 재현하는 예제를 제공 할 수 있습니까? 필자는 그런 일이 발생하는 것을 결코 보지 못했고 XML serializer가 결과가 발생했다면 결과를 deserialize하는 방법을 알지 못합니다. –

답변

9

XMLELEMENT 속성은 order property있다. 이를 처음으로 사용할 수 있습니다.

diff 파일을 Xml 파일로 찾으려면 this을 참조하십시오.

0

ps : XmlSerializer에서 생성 된 XML이 정의되지 않은 순서에 있다고 생각하지 않습니다. 그것은 문서화되지 않았을 수도 있지만 그것은 알려져 있습니다. Order 속성이 없으면 XmlSerializer는 모든 공용 속성, 소트 이름에 의해 알파 정렬 된 다음 이름순으로 정렬 된 모든 공용 필드를 직렬화합니다.

관련 문제