[.net] DataContractSerializer 대 XmlSerializer : 각 serializer의 장단점

내 데스크톱 응용 프로그램은 XmlSerializer. DataContractSerializer대신 레버리지 를 제안 받았습니다 .
어떤 시나리오에서 사용해야 DataContractSerializer합니까?

많은 감사

코멘트.
1. 출력 XML 파일이 로컬에 저장됩니다. 다른 응용 프로그램은 해당 XML 파일에서 개체를 역 직렬화하지 않습니다.
2. 내 응용 프로그램은 .NET Framework 3.5 SP1에서 실행됩니다.



답변

Dan Rigsby는 이것에 대한 궁극적 인 게시물을 가지고 있습니다-가서 읽어보세요!

XmlSerializer 대 DataContractSerializer (웹 아카이브)

그는 말할 수있는 모든 것을 매우 설득력있는 방식으로 말합니다.

요컨대 :

XmlSerializer :

  • 오랫동안 주변에 있었다
  • “선택 해제”입니다. ([XmlIgnore])하지 않으면 모든 공개는 직렬화됩니다.

DataContractSerializer는 다음과 같습니다.

  • 마을의 새로운 아이
  • 속도 최적화 (일반적으로 XmlSerializer보다 약 10 % 빠름)
  • “opt-in”- [DataMember]직렬화 될 것으로 특별히 표시 한 항목 만
  • 그러나로 표시된 모든 [DataMember]것은 직렬화됩니다.public 또는private
  • XML 속성을 지원하지 않음 (속도상의 이유로)


답변