У меня есть .Net Core 2.2 OData API, для которого я пытаюсь реализовать документацию Swagger.
Я следую этому примеру: https://github.com/Microsoft/aspnet-api-versioning/tree/master/samples/aspnetcore/SwaggerODataSample
У меня естьполучил его до определенного момента.Теперь я сталкиваюсь с проблемой, когда мои модели ссылаются друг на друга по кругу, позвольте мне объяснить:
Примечание: я использовал первый подход кода EFCore для обработки моей БД.
У меня есть эти модели (как пример): Project, ProjectLocation, ProjectRegion.Позволяет называть их A, B & C, чтобы быть краткими.
A имеет ссылки на B & C, например, так:
public virtual ICollection<X> X{ get; set; }
И обе ссылки B & C A напрямую, вот так:
public A A{ get; set; }
Это все довольно стандартная модель реляционной БД, но, похоже, SwaggerUI не справится с этим.
Я получаю следующую ошибку:
Не удалось загрузить определение API.Ошибки: Ошибка извлечения: Внутренняя ошибка сервера /swagger/v1/swagger.json
Произошло необработанное исключение при обработке запроса.TypeLoadException: не удалось загрузить тип 'NCCRD.Services.DataV2.Database.Models.ProjectLocation' из сборки 'Tc2fc56a7babe40419a678a075439246c.DynamicModels, версия = 0.0.0.0, культура = нейтральная, PublicKeyToken = нуль 1029 * 10 * 10 *. *System.Signature.GetSignature (Void * pCorSig, int cCorSig, RuntimeFieldHandleInternal fieldHandle, метод IRuntimeMethodInfoHandle, RuntimeType declaringType)
При необходимости также доступна трассировка стека * *
Я прочитал эти два поста и все ссылки ссылки, насколько я мог пойти, но не нашел решение, которое работает:
https://github.com/swagger-api/swagger-codegen/issues/741
https://github.com/swagger-api/swagger-codegen/issues/728
Когда-то решение, которое казалось хорошим, было таким: https://systemout.net/2017/04/07/swagger-asp-net-core-fixing-circular-self-references/,, но это тоже не имело никакого эффекта.(Я тоже обращался к автору за помощью)
В тот момент, когда я удаляю ссылку на A из B или C, SwaggerUI прекрасно загружается.
Если кто-то может пролить свет на это, яЯ действительно ценю это.Заранее спасибо за любую помощь.