c# - ASP NET Boilerplate > 使用 swagger 代码生成工具 (nswag) 生成 C# swagger 客户端不起作用

标签 c# swagger-codegen asp.net-boilerplate nswag

我尝试为使用 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/

相关文章:

c# - System.Diagnostics.Trace,最简单的编程配置

c# - Docker-Compose YML 与 ASP.NET Core 2.2 Web API 和 SQL Server 2017

java - 如何使用 Swagger codegen 开发一个简单的 REST 客户端?

java - 使 swagger codegen maven 插件从另一个 maven 依赖项访问 yaml 文件

c# - Asp.net MVC 样板依赖注入(inject)不起作用

aspnetboilerplate - 从应用程序服务检查用户角色

c# - 快速构建整数前导 0 的字符串的方法?

c# - 如何检测 Windows 是否要休眠或挂起?

go - 如何使用 flask_restplus 定义字典字段以用于使用 swagger codegen 生成的 go 代码?

c# - Asp.Net Boilerplate,如何获取当前登录用户?