我尝试为使用 ASP Net Boilerplate 创建的 API 生成 C# 代码,但响应未正确反序列化。
经调查,似乎 json 响应是使用名为“AjaxResponse”的类包装的;但是,swagger.json 不在方法响应中包含此类型。
有谁知道如何构建一个解释包装结果的 C# Swagger 客户端?
最佳答案
Aspnet Boilerplate 将真实结果包装在 AjaxResponse 中。类(class)AjaxResponse是一个通用类型类。 Swaggergen 工具无法生成正确的代理类,因为包装结果发生在运行时。 因此,被 Swagger 抓取的 api 的签名是原始结果(未包装)。
因此,唯一的解决方案是在整个解决方案范围内禁用自动包装器。将这两行添加到 Web.Core 项目中的 PreInitialize() 方法。您的问题将得到解决。
Configuration.Modules.AbpAspNetCore().DefaultWrapResultAttribute.WrapOnError = false;
Configuration.Modules.AbpAspNetCore().DefaultWrapResultAttribute.WrapOnSuccess = false;
关于c# - ASP NET Boilerplate > 使用 swagger 代码生成工具 (nswag) 生成 C# swagger 客户端不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45777820/