2011-03-25 2 views
4

웹 서비스로 사용할 매우 간단한 C# HttpHandler (ashx)를 작성 중이며 Json.Net을 사용하여 작은 (4-5 필드) 구조체.C#/Json을 사용하여 웹 서비스에서 구조체 serialize

웹 서비스 측면에서 구조체를 serialize하고 다른 끝 부분에서 올바른 유형으로 역 직렬화 할 수있는 옵션은 무엇입니까 (별개의 C# 웹 응용 프로그램이 될 수 있음). 각 끝에 구조체의 정의를 붙여 넣으시겠습니까? 지금 구조체는 webservice 내부와 소비 웹 페이지에 중첩 된 유형입니다. 나 자신의 클래스 어셈블리로 추출 할 수 있으며 양쪽 끝에 참조를 추가 할 수 있지만 양쪽 끝에 정의를 유지하는 것보다 훨씬 간단하지는 않습니다. 다른 적절한 방법이 있습니까?

답변

2

전송할 수있는 유형이 거의없고 변경이 거의없는 경우 (양 끝에서만 정의).

이 많이있는 경우에, dll을

마법 정말 ... JSON 디자인 매우 계약 무료로 없다 공유 할 수 있습니다. 사실 익명 형식조차도 대부분의 경우 매우 순조롭게 직렬화됩니다. 대부분의 시간은 잘못 사용할 :

개인적으로 난 당신이 struct를 사용하는 이유 정말 좋은 생각을 가지고하지 않는 한이 class가 아닌 struct는하지만 ... 언제나처럼, class을 선호 사용하십시오.

+0

확인해 주셔서 감사합니다. 내 직감이었습니다. FWIW, 문제의 객체는 문자 그대로 단지 문자열 속성의 모음입니다.이 요소는 점프하는 경계를 가로 질러 직렬화하기 쉽도록하기 위해 함께 번들로 묶여 있습니다. 오해가있는 구조체의 완벽한 경우처럼 보였습니다. 내가 잘못? – cori

+1

@cori - 예; 수업이 더 적절할 것입니다. 선택은 단순한 컨테이너라는 것과 아무 관련이 없습니다. –