首页 > 解决方案 > 如何使用 net5 OpenAPI 支持指定基本接口

问题描述

我正在尝试使项目适应 .net5 并希望使用添加 OpenAPI 服务引用的新功能。据我了解,NSwag 将用于生成客户端。过去我已经为此目的使用了 NSwag,我可以使用clientBaseInterface选项来指定客户端接口的基本接口,即

interface IClient: **IClientBase** {}
class Client: IClient {}

另请参阅https://github.com/RicoSuter/NSwag/issues/2772

我尝试为我的 .net5 项目使用以下配置,但不会为生成的类型指定基本接口:

  <ItemGroup>
    <OpenApiReference Include="openapi.json" CodeGenerator="NSwagCSharp" Namespace="MyNamespace">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
      <ClassName>MyOpenApiClient</ClassName>
      <OutputPath>MyOpenApiClient.cs</OutputPath>
      <Options>/GenerateClientInterfaces:true /UseBaseUrl:false /ExceptionClass:OpenApiException /ClientBaseInterface:MyBaseInterface</Options>
    </OpenApiReference>
  </ItemGroup>

有人知道如何在 .net 项目文件中使用此选项吗?

更新: 由于 NSwag 正在创建部分类和接口,一个简单的解决方法是在部分接口中添加 IClientBase 接口,即

// partial extension
partial interface IClient : **IClientBase** {}

// generated code
partial interface IClient {}
partial class Client: IClient {}

但是,如果我们可以直接在 .net 项目文件中管理它,仍然会很有趣。

标签: c#swaggeropenapinswag.net-5

解决方案


推荐阅读