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

.NET 6的System.Text.Json源生成功能的生成代码存储位置在哪里

生成代码的默认位置

默认情况下System.Text.Json的源生成器输出的代码存放在项目的中间输出目录中,路径为:
项目根目录/obj/[编译配置(Debug/Release)]/[目标框架标识]/
在该目录下查找文件名前缀为System.Text.Json.SourceGeneration、后缀为.g.cs的文件,就是源生成器输出的自动生成代码。


未生成代码的常见排查方案

  • 首先确认项目目标框架为 .NET 6 及以上版本,仅单独安装6.0.0版本的System.Text.Json包、但项目目标框架低于.NET 6时无法触发源生成逻辑。
  • 确认你使用的.NET SDK版本为6.0.100及以上,可执行dotnet --version命令查看当前SDK版本。
  • 你可以在项目的.csproj文件中添加以下配置,将生成的代码输出到项目根目录的Generated文件夹中方便查看:
<PropertyGroup>
  <!-- 开启输出生成代码到文件 -->
  <EmitCompilerGeneratedFiles>true</EmitCompilerGeneratedFiles>
  <!-- 指定生成代码的输出目录 -->
  <CompilerGeneratedFilesOutputPath>Generated</CompilerGeneratedFilesOutputPath>
</PropertyGroup>
  • 确认你的PersonJsonContext类所在的命名空间正确引用了Person类的命名空间,避免源生成器无法识别类型。

额外使用提示

你当前的序列化代码没有用到源生成的上下文,需要修改调用方式才能使用源生成逻辑:

// 旧调用:走默认反射序列化逻辑
// Console.WriteLine(JsonSerializer.Serialize(person));
// 新调用:使用源生成的上下文
Console.WriteLine(JsonSerializer.Serialize(person, PersonJsonContext.Default.Person));

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 08:45:08