2011-02-08 3 views
7

Я новичок в REST, и это звучит так, как будто это должно быть довольно просто. В приложении .NET я могу создать ссылку на службу WCF, и контракты для всех доступных типов будут созданы для меня.Создание контрактов для объектов REST

Теперь я пытаюсь использовать службу REST в приложении Windows Phone 7. Хотя я могу сделать свой звонок и вернуть правильный ответ, есть ли простой способ создать классы, для которых каждый объект будет десериализован?

Я использую RestSharp для управления моими вызовами. В некоторых примерах, которые я видел, пользователь создал свои собственные классы и сгенерировал xml вручную. Я бы хотел избежать этого, если это вообще возможно.

большое спасибо!

+0

Я не могу ответить на ваш вопрос, но я написал его автору RestSharp в надежде, что вы будете получать более четкие указания. –

ответ

8

Предполагая, что ваш ответ XML, вы можете сохранить xml в файл, а затем вызвать xsd.exe на нем для создания схемы. Вызовите xsd.exe на схеме, и он сгенерирует файл класса C#, который вы можете seriazlize и deserialize из xml. Вот documeantion о том, как работает XSD.exe:

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

+0

Отличная идея, спасибо за подсказку. – earthling

+0

спасибо, это был определенно самый простой способ сделать это. – earthling

+0

Какое творческое решение. Престижность. +1 – Stimul8d

3

Вы должны сгенерировать классы, на которые будут отображаться ваши данные ответа (или использовать схему динамической десериализации, если вы на .NET 4), поскольку REST не включает систему определения схемы, как это делает SOAP. В RestSharp, there's a T4 helper to make generating the C# classes easier. Это дает вам около 80% пути. Если вам нужна помощь, отправьте сообщение RestSharp Google Group.

+0

Спасибо, я сейчас пытаюсь T4. – earthling

+0

На днях у меня была очень интересная дискуссия с кем-то, кто предложил способ, чтобы этот подход можно было сделать самоописательным, используя очень конкретные значения rel, чтобы идентифицировать клиента, какой точный тип будет возвращен. Набор rels, который поддерживает служба, должен быть четко документирован и поддерживается клиентом, но по крайней мере вы можете избежать связывания своих URI для возврата типов таким образом. –

+1

https://github.com/johnsheehan/RestSharp/wiki/T4-Helper не найден – Kiquenet

Смежные вопросы