2014-03-01 2 views
0

다차원 배열을 serialize 할 수있는 간단한 확장 기능을 작성했습니다. Internaly 배열 항목에 대해 XmlSerializer 사용하고 있지만 읽기 전용 속성을 작동하지 않습니다. 그렇다면이 속성을 가진 클래스를 수정하지 않고 XmlSerializer (또는 DataContractSerializer과 같은 다른 클래스)를 사용하여 XML에서 어떻게 serialize 할 수 있습니까? 내 말은 내가 방법 Serialize<T>(T obj) 있고 모든 T, 심지어 구조체 KeyValuePair<T,U> R/O 속성 같은 serialize 할 수 있습니다.읽기 전용 속성을 serialize하기위한 확장

답변

0

XmlSerializer 또는 DataContractSerializer으로는이 작업을 수행 할 수 없습니다. 당신은/직렬화 private를 역 직렬화 심지어 readonly 필드/속성 그러나 모든 필드/속성은 DataMember 특성으로 표시 할 필요가있는 직렬화, 그래서는 KeyValuePair<K,V>으로, 임의의 종류에 사용할 수 없습니다 수 DataContractSerializer를 사용

.

XML API (예 : Linq2Xml)와 리플렉션을 사용하여 수동으로 수행하는 것 이외에 달성하려는 작업을 정확하게 수행하는 것으로 보이는 sharpserializer을 볼 수 있습니다.

+0

멀티 딤 배열을 직렬화 할 수 있습니다. 직렬화가 읽기 전용 속성을 직렬화하지 않을 때 상황을 회피하고 싶을뿐입니다. –

+0

죄송합니다. 질문에 대한 오해를했습니다. 편집 답변. – alsed42

관련 문제