내 데스크톱 응용 프로그램은 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 속성을 지원하지 않음 (속도상의 이유로)