문제

WCF를 사용하고 있습니다 WebInvokeAttribute 선언적 JSON 요청의 경우 (DataContractJsonSerializer), 와 함께 DataContractAttribute/DataMemberAttribute 기반 직렬화.

다른 문화를 기반으로 한 데이터가 포함 된 Returning JSON을 지원하는 서비스를 사용하고 있습니다. 기본적 으로이 서비스는 en

나는 수업이 있습니다 System.Double 재산. "소수 분리기로 사용하는 문화"를 사용하여 데이터를 요청하면 SerializationException 이 속성의 가치를 사로화하려고하면서 System.Double:

"유형 XXX의 객체를 실시하는 오류가있었습니다. '1,6276'값은 'Double'유형으로 구문 분석 할 수 없습니다."

이것은 분명히 2 배를 구문 분석하는 동안 변하지 않는 문화가 사용되기 때문입니다. 현재 스레드에서 올바른 문화를 설정하면이 문제가 해결되기를 바랐지만 그렇지 않았습니다.

따라서 사용하지 않는 문화권에 대한 서비스는 ""입니다. 소수점 분리기로.

도움을 주셔서 감사합니다.

감사!

도움이 되었습니까?

해결책

에 따르면 JSON 사양, 숫자는 기간을 사용하여 포맷해야합니다. 다시 말해, 문제는 디스 세 리아이저 파트에 있지 않으며 시리얼 라이저 부분에 있습니다.

쉼표 분리기를 절대 사용해야하는 경우 속성 유형에 문자열을 사용하여 계약을 설정하고 클래스에 문자열을 소수점으로 변환하기 위해 직렬화되지 않은 추가 부동산을 제공하는 것이 좋습니다 (그런 다음, 그렇습니다. 필요한 문화를 전달할 수 있습니다).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top