2009-06-19 7 views
0

.NET에서 일방 통행 XML 직렬화를 수행하는 방법에는 어떤 것이 있습니까? XmlSerializer는 공용 설정자가없는 속성을 작성하지 않습니다. 이 제한은 deserialization에 대해 이해할 수 있지만 웹용 직렬 연결에만 만족할 것입니다. JSON.Net 직렬화는 일부 속성에 setter가 정의되지 않은 경우에도 전체 객체 그래프를 직렬화하지 않기 때문에 이러한 상황에서 효과적입니다.XML에 객체 쓰기

이러한 클래스의 주요 목표는 일반적인 .Net 클래스 라이브러리입니다. 이러한 클래스는 90 %의 케이스에서 다른 코드에 의해 소비되므로 클래스의 일반적인 사용 가능성을 희생하지 않는 솔루션을 따릅니다.

결과 클래스 라이브러리는 .Net 2.0을 지원해야합니다.

답변

2

이 사이트를 체크 아웃 할 수 있습니다 : 당신이 당신의 객체가 직렬화되는 방법을 오버라이드 (override) 및 XML 스트림에하지 말아야 할 것을 스스로 결정하는 것이 좋습니다 XmlSerializer vs DataContractSerializer

너머를.

+0

ISerializable 인터페이스를 구현할 수 있습니다. – eschneider

3

나는 DataContractSerializer을 살펴볼 것입니다. 이 유형은 .NET 3.0 프레임 워크에서 선언되었으므로 프로젝트에서 System.Runtime.Serialization.dll의 새 버전을 사용하는 것을 막지는 못합니다.

DataContractSerializerXmlSerializer과 다른 점을 잘 알고 싶다면 Chris Lively's answer을 확인해보십시오.

+2

Isnt 'WCF의 DataContractSerializer 부분이므로 .NET 3.0 이상에서만 사용할 수 있습니까 ?? 그 OP는 특별히 .NET 2.0을 요구했습니다 ..... –

+0

@marc_s - 맞습니다. DataContractSerializer는 .NET 3.0의 일부이지만 2.0과 3.x는 동일한 CLR (2.0)을 공유하므로 자유롭게 사용할 수 있습니다. 3.x 어셈블리 2.0 응용 프로그램에서. –

+0

예.하지만 여전히 .NET 3.0 프레임 워크를 설치해야합니다. 맞습니까? 별로 중요하지 않겠지 만 불행히도 많은 시스템 관리자가 :-( –