2011-02-08 2 views
7

저는 REST를 처음 접했고 매우 간단해야한다고 생각합니다. .NET 응용 프로그램에서는 WCF 서비스에 대한 참조를 만들 수 있으며 사용 가능한 모든 유형에 대한 계약이 생성됩니다.REST 객체에 대한 계약 생성

이제 Windows Phone 7 앱에서 REST 서비스를 사용하려고합니다. 저의 전화를 걸고 적절한 응답을 얻을 수는 있지만, 각 객체가 비 직렬화 될 클래스를 만드는 간단한 방법이 있습니까?

RestSharp를 사용하여 통화를 관리하고 있습니다. 필자가 본 몇몇 예제에서 사용자는 자신의 클래스를 만들고 xml을 수동으로 생성했습니다. 가능하다면이 문제를 피하고 싶습니다.

많은 감사!

+0

나는 당신의 질문에 대답 할 수없는,하지만 난 당신이 더 나은지도를받을 희망 RestSharp의 저자에 트위터. –

답변

8

응답이 XML 인 경우 xml을 파일에 저장 한 다음 xsd.exe를 호출하여 스키마를 생성 할 수 있습니다. 스키마에서 xsd.exe를 호출하면 xml에서 직렬화 및 비 직렬화 할 수있는 C# 클래스 파일이 생성됩니다. 여기 XSD.exe가 작동하는 방법에 대한 documeantion입니다 :

http://msdn.microsoft.com/en-us/library/x6c1kb0s(v=VS.100).aspx

+0

위대한 아이디어, 팁 주셔서 감사합니다. – earthling

+0

덕분에, 이것은 확실히 이것에 대해 가장 쉬운 방법이었습니다. – earthling

+0

창조적 인 해결책. 명성. +1 – Stimul8d

3

REST에는 SOAP와 같은 스키마 정의 시스템이 없으므로 응답 데이터가 매핑되는 클래스를 생성해야합니다 (또는 .NET 4에있는 경우 동적 비 직렬화 스키마 사용). RestSharp에서 there's a T4 helper to make generating the C# classes easier. 그 길의 약 80 %를 얻을 수 있습니다. 도움이 필요하면 RestSharp Google Group에 게시하십시오.

+0

고마워, 지금 T4를 시도 중이다. – earthling

+0

나는 매우 구체적인 rel 값을 사용하여 정확한 유형이 반환 될 클라이언트를 식별함으로써이 접근법을 자기 설명 적으로 만들 수있는 방법을 제안한 사람과 매우 흥미로운 토론을 가졌습니다. 서비스가 지원하는 릴레이션 세트는 클라이언트가 명확하게 문서화하고 지원해야 할 필요가 있지만 최소한 URI를이 방식으로 반환하는 것을 피할 수 있습니다. –

+1

https://github.com/johnsheehan/RestSharp/wiki/T4-Helper을 찾을 수 없습니다. – Kiquenet