2010-10-29 3 views
4

J'ai un certain nombre d'interfaces que j'utilise pour transmettre des objets métier dans mon application. En utilisant Ninject, je peux faire tout ce que je veux avec eux sans avoir besoin de connaître le type de l'objet réel; dans ce cas, la plupart d'entre eux sont en fait des objets Linq à Sql différents qui implémentent l'interface. Par exemple, j'ai un objet Linq to Sql appelé Listing qui implémente IListing.Sérialisation d'objets d'interface vers JSON

Où j'ai rencontré un problème est avec la sérialisation. J'ai essayé d'utiliser JsonResult et JsonNet. Les deux tentent de sérialiser l'objet Linq en Sql, pas seulement les propriétés définies dans le type d'interface. Cela conduit à des problèmes de référence circulaire, mais le plus gros problème est que je veux seulement que les propriétés définies dans l'interface soient sérialisées et transmises.

Alors, existe-t-il un moyen élégant de sérialiser juste les propriétés définies dans une instance d'une interface que je passe à un sérialiseur?

+0

Je vois que vous pouvez faire une approche opt-in à JsonNet qui fonctionnerait probablement ici: http://james.newtonking.com/projects/json/help/SerializationAttributes.html. – Dusda

+0

J'espérais quelque chose d'un peu moins décoratif, pour ainsi dire. – Dusda

Répondre

0

Vous pouvez définir un nouveau type de transport contenant uniquement les propriétés dont vous avez besoin, puis utiliser AutoMapper pour convertir votre objet de domaine en ce type qui sera utilisé pour la sérialisation.

Questions connexes