You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否在Visual Studio的csproj项目文件中配置NSwagCSharp代码生成器?

可否在csproj中配置NSwagCSharp代码生成器

可以,你完全可以通过修改csproj项目文件中的OpenApiReference节点自定义NSwagCSharp的代码生成规则,覆盖Visual Studio添加OpenAPI服务时的默认配置,无需依赖NSwagStudio工具。

配置操作步骤
  • 先通过Visual Studio 2019解决方案资源管理器的「Connected Services」入口,按默认流程添加目标Swagger JSON对应的OpenAPI服务,添加完成后csproj文件内会自动生成包含CodeGenerator="NSwagCSharp"属性的OpenApiReference节点
  • 编辑csproj文件,在自动生成的OpenApiReference节点内新增自定义配置子节点,调整生成规则
  • 保存csproj文件后重新生成项目,代码生成器就会按照新配置生成客户端代码
常用配置项参考

你可以根据需求添加以下常用配置:

  • Namespace:指定生成的客户端代码所在的命名空间
  • ClassName:指定生成的客户端类的名称
  • GenerateClientInterfaces:设为true时会同步生成客户端对应的接口定义
  • UseDateTimeOffset:设为true时会将接口返回的时间类型默认生成为DateTimeOffset而非DateTime
  • GenerateDocumentationComments:设为false时会取消生成Swagger注释对应的XML注释
  • DisposeHttpClient:设为false时生成的客户端不会自动释放HttpClient实例,适合使用HttpClientFactory注入的场景
  • GenerateOptionalParameters:设为true时会将非必填接口参数生成为可选参数
完整配置示例
<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>net6.0</TargetFramework>
  </PropertyGroup>
  <ItemGroup>
    <!-- 自动生成的OpenAPI引用节点 -->
    <OpenApiReference Include="OpenAPIs\order-service.swagger.json" CodeGenerator="NSwagCSharp">
      <!-- 自定义配置项 -->
      <Namespace>MyProject.OrderService.Apis</Namespace>
      <ClassName>OrderApiClient</ClassName>
      <GenerateClientInterfaces>true</GenerateClientInterfaces>
      <UseDateTimeOffset>true</UseDateTimeOffset>
      <DisposeHttpClient>false</DisposeHttpClient>
      <GenerateOptionalParameters>true</GenerateOptionalParameters>
    </OpenApiReference>
  </ItemGroup>
</Project>

内容的提问来源于stack exchange,提问作者Francois Denis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 15:57:00