ScriptIgnore для метаданных - PullRequest
2 голосов
/ 11 ноября 2010

Я использую JavaScriptSerializer для сериализации объектов EF4 и получаю циклическую ссылку при попытке сериализации их в JSON.

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

Так как же вы, сериализуете ваши объекты в json в этом случае.Есть ли способ сделать это без использования ViewModels и, вероятно, с помощью JavaScriptSerializer по умолчанию.

1 Ответ

3 голосов
/ 11 ноября 2010

Путем добавления JavaScriptConverter , например, . Обратите внимание, что для этого нам не нужен особый доступ к сериализуемым объектам, но это может быть очень неприятно, если у вас много объектов, затронутых этой проблемой. Если это вероятная проблема, вероятно, будет меньше труда просто написать класс DTO (который близок к вашей модели), которым вы сможете управлять более напрямую.

Вы правы, что не редактируете сгенерированные классы, и (разочарованно) вы не можете использовать partial class для добавления атрибутов к членам, объявленным в другой части partial class.

...