2012-02-23 3 views
0

편집 - 나는 내가 DataContractSerializer 작업하고있는 점DataContractSerializer 모범 사례?

에 내 질문에 더 만들기 위해 노력하고 있습니다. 나는 serializer를 인스턴스화 할 때 Namespace와 Name을 지정할 수 있다는 것을 알았다. 이름과 네임 스페이스를 제어하려고 할 때를 설명하기위한 지침이 있습니까? (또는 모범 사례 일 수도 있습니다.) 그리고 그 값에 대해 무엇을 사용하고 싶습니까?

직렬화 직렬화를하고있는 클래스의 네임 스페이스와 클래스 이름을 사용하고 싶습니다. 그게 좋은 일이든 나쁜 일입니까?

+1

당신의 목표는 무엇입니까? XmlSerializer는 많은 양의 출력을 제어하고 싶다면 실제로 더 세분화 된 컨트롤을 제공합니다. DCS는 일부 추가/다른 시나리오를 지원하지만 제어 기능은 거의 제공하지 않습니다. –

+0

@Marc 저는 많은 통제가 필요하지 않습니다. 적어도 출력이 어떻게 생겼는지 걱정하지 않습니다. 순방향 호환성 (어셈블리 버전이 변경된 경우 deserialize 할 수 없거나 계약에 멤버를 추가 (제거/이름 바꾸기)하지 않을 수 있음)가 대기열에 들어가는 작업 실행 매개 변수를 저장하는 것입니다. 예정된 실행을 위해 테이블에 저장됩니다. 저는 Silverlight에서 작동하고 DCS에 필요한 버전 안전성이있는 것으로 보이고 WCF에 친숙하여 ​​DCS에 관심이있었습니다. 서비스 작업에서이 메서드를 사용하려면 DCS에 관심이있었습니다. 어떻게 생각해? – JMarsch

답변

2

DataContractSerialializer는 계약 기반 직렬화 기이므로 전달 호환성은 추가하는 동안 큰 문제가 아니어야하며 이름을 바꾸려면 특성을 통해 이전 이름을 추가하여 숨길 수 있습니다. 따라서 "간단하게"말하십시오. 영리 해 지려고 노력하면 많은 버그의 원인이됩니다.

Re "어떻게 생각하세요?" (의견) - 나는 protobuf-net을 사용하고 싶지만 다소 편파적이라고 생각한다 : p

+0

너는 알다시피 - 나는 protobuf에 관하여 거의 언급했다 - 실제로 그것을 사용하게 될지도 모른다 JMarsch