2014-02-07 5 views
0

Мне нужно преобразовать свой объект класса (C#) в формат OData Json и затем преобразовать его обратно в объект. Есть ли доступная библиотека для этого. Мне нужно что-то похожее на Newtonsoft.Json.Сериализация и десериализация OData

Например:

string json = Newtonsoft.Json.JsonConvert.SerializeObject(myObject); 

Сценарий (Если вам нужно знать):

Я использую Windows Azure Table Storage, чтобы сохранить свои объекты. Клиент может сохранить любой объект (применяются ограничения на хранение в лазурной таблице). Клиент будет подключаться только к моей службе (ServiceStack), развернутой как веб-роль в Windows Azure Cloud. Эта служба будет обрабатывать запрос клиента, например. аутентифицировать/разрешить, а затем подключиться к хранилищу таблиц для сохранения объекта, отправленного клиентом.

Главное, что мой сервис (ServiceStack, развернутый как веб-роль) не знает тип класса объекта, отправляемого клиентом, потому что клиент может создать любой новый класс и отправить его объект для сохранения. Windows Table Storage REST API поддерживает OData. Я пишу SDK для отправки клиентом моего сервиса (веб-роли). SDK отправит запрос после сериализации объекта в формат OData, чтобы мой сервис мог понять его схему.

+0

Из любопытства, это потому, что вы получаете доступ к одинарной конечной точке с помощью httpclient? – Schandlich

+0

Нет. Я не получаю доступ к оконечной точке odata напрямую. Моя реализация на стороне сервера (служба ServiceStack) должна понимать схему сериализованного объекта, обрабатывать его, а затем отправлять его другому серверу через конечную точку odata. – Haider

+0

По-прежнему пытается понять точный вопрос. У вас есть служба, которая вызывает другую услугу. Вам нужно обработать результат услуг, а затем отправить его обратно? – Schandlich

ответ

0

К сожалению, OData НЕ имеет сериализатора и десериализатора, не зависящего от модели edm. OData только сериализует и десериализует объекты, когда у вас есть модель, определяющая их, поскольку вы должны преобразовать объекты в значения в формате OData с помощью модели.

Вы считали использовать SDK для Azure Table для .NET? AFAIK, Azure Table поддерживают самоопределяемые типы в хранилище.

Плюс, если вам действительно нужно выполнить сериализацию ваших объектов-клиентов, кажется, вам просто нужно сериализовать их на клиенте, а затем сохранить сериализованные строки в таблице Azure. Когда вам нужно их использовать, вы можете получить строки из таблицы Azure, а затем десериализовать их на своем клиенте.

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