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

调用MemoryPackSerializer.Serialize()时抛出类型未注册异常求助

解决MemoryPack序列化时“类未注册”的异常

你遇到的MemoryPackSerializationException是因为MemoryPack依赖源生成器自动生成序列化/反序列化代码,但生成的代码未被正确生成或加载,以下是具体解决步骤:

1. 安装必需的NuGet包

MemoryPack需要两个核心包:

  • MemoryPack:核心序列化库
  • MemoryPack.Generators:源生成器,负责为标记[MemoryPackable]的类生成partial实现

执行以下命令安装:

dotnet add package MemoryPack
dotnet add package MemoryPack.Generators

确保两个包的版本保持一致。

2. 确认源生成器未被禁用

检查项目文件(.csproj)中是否存在禁用源生成器的配置,如果有,删除该配置:

<!-- 确保项目文件中没有这段配置 -->
<PropertyGroup>
  <DisableImplicitSourceGenerators>true</DisableImplicitSourceGenerators>
</PropertyGroup>

.NET 6默认启用源生成器,无需额外配置。

3. 清理并重建项目

源生成器的输出可能因缓存异常导致未正确生成,执行以下命令清理并重建:

dotnet clean
dotnet build

重建后,可以查看项目的obj/Debug/net6.0目录下是否生成了类似Person.g.cs的文件,该文件包含Person类的序列化实现代码,说明源生成器工作正常。

4. 验证代码正确性

你的Person类代码本身是正确的:

  • 标记了[MemoryPackable]特性
  • 类声明为partial
  • 正确引用了MemoryPack命名空间

确认没有拼写错误即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 06:30:37