Образцы, не работающие на странице справки веб-API, при использовании в модели модели Entity Framework Complex Type - программирование
Подтвердить что ты не робот

Образцы, не работающие на странице справки веб-API, при использовании в модели модели Entity Framework Complex Type

У меня есть первая модель кода EF, которая включает некоторые сложные типы. Создание контроллеров Web API работает без каких-либо проблем, но при создании страницы справки веб-API, как описано в http://blogs.msdn.com/b/yaohuang1/archive/2012/08/15/introducing-the-asp-net-web-api-help-page-preview.aspx, образцы не генерируются. Это сообщение об ошибке:

При использовании форматирования 'JsonMediaTypeFormatter' произошло исключение, чтобы сгенерировать образец для типа media/application/json. Сообщение об исключении: произошла одна или несколько ошибок.

То же самое происходит для остальных типов медиа. Я знаю, что была проблема некоторое время назад со сложными типами и сериализацией, но она была решена, когда форматировщик Json.NET был включен по умолчанию в Web API.

Может ли это быть связано? У кого-то еще такая же проблема? Любые идеи?

4b9b3361

Ответ 1

Я предполагаю, что это, скорее всего, связано с циклами ссылок, которые есть у вашей модели. Например, вы можете попробовать создать страницу справки, внеся следующие изменения в форматировщик Json. вы должны увидеть созданный образец:

        config.Formatters.JsonFormatter.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Serialize; 
        config.Formatters.JsonFormatter.SerializerSettings.PreserveReferencesHandling = Newtonsoft.Json.PreserveReferencesHandling.Objects;

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

Для циклов XmlFormatter и self referencing вы можете посмотреть здесь.