2009-06-18 6 views
4

클래스 계층 구조 트리에서 다른 클래스 멤버가 아닌 POCO [Serializable]를 만들고 싶습니다. 필드에 대해서만 작동하는 [NonSerialized]가 있다는 것을 알고 있지만 POCO에서 [Serializable]을 사용하여 특정 멤버를 제외하거나 특정 멤버를 선택하는 방법이 있습니까?클래스 멤버를 제외하고 POCO를 직렬화하기

답변

4

DataContractSerializer; 그것은 직렬화에 대한 "옵트 인 (opt-in)"방식을 사용합니다.

예를 들어 XmlSerializer vs DataContractSerializer: Serialization in Wcf을 읽고 DataContractSerializerXmlSerializer을 비교하는 것이 좋습니다.

는 XmlSerializer를 버전 1.0 이후 닷넷 되었습니다 및 파일로 직렬화, 원격, 웹 서비스에서 모든 것을 우리를 잘 역임했다 등 그러나 닷넷 3.0에서 DataContractSerializer가 함께왔다 . 그리고 갑자기 많은 안내가 은 우리가 그것을 시도해야한다고 제안했습니다 오래된 시도와 진정한 XmlSerializer. Wcf는 이것을 직렬화를위한 기본 메커니즘으로 사용합니다. 질문은 "정말 좋은가요?"입니다. 평결은 예, 아니오입니다. 과 마찬가지로 대부분 구현과 필요한 항목에 따라 다릅니다. Wcf의 경우 DataContractSerializer를 사용하는 것이 좋습니다. 그래도 이 보이는 방식을 완전히 제어해야하는 경우 XmlSerializer로 돌아 가야합니다.

+0

좋은 답변 (광산을 삭제했습니다) - (OP 용) 추가 : 엄격한 이진 직렬화를 원한다면 protobuf-net을 고려해보십시오. –

+0

@Marc - protobuf-net은 좋은 선택이기도하며 그 자체로 답할만한 가치가 있습니다. 당신이 당신의 대답을 취소하면 나는 그것을 upvote 것입니다. –

관련 문제