2010-10-29 3 views
4

У меня есть несколько интерфейсов, которые я использую для передачи бизнес-объектов в моем приложении. Используя Ninject, я могу делать все, что захочу, без необходимости знать тип фактического объекта; в этом случае большинство из них фактически представляют собой различные объекты Linq to Sql, реализующие интерфейс.Сериализация объектов интерфейса для JSON

Например, у меня есть объект Linq to Sql, называемый листингом, который реализует IListing.

Где я столкнулся с проблемой с сериализацией. Я попытался использовать встроенные JsonResult и JsonNet. Оба они пытаются сериализовать фактический объект Linq to Sql, а не только свойства, определенные в типе интерфейса. Это приводит к циклическим справочным вопросам, но большая проблема заключается в том, что я хочу, чтобы свойства, определенные в интерфейсе, были сериализованы и переданы.

Итак, есть ли элегантный способ сериализации свойств, определенных в экземпляре интерфейса, который я передаю в сериализатор?

+0

Я вижу, что вы можете сделать выбор в JsonNet, который, вероятно, будет работать здесь: http://james.newtonking.com/projects/json/help/SerializationAttributes.html. – Dusda

+0

Я надеялся на что-то немного менее декоративное, так сказать. – Dusda

ответ

0

Вы можете определить новый тип транспорта, содержащий только нужные вам свойства, а затем использовать AutoMapper для преобразования между объектом домена в этот тип, который будет использоваться для сериализации.

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