.NET 6 Blazor WebAssembly引用类库失败,无法识别AppUserDto
排查步骤及解决方案
1. 确认客户端项目已正确引用SharedDTOs类库
- 右键客户端项目 → 「添加」→「项目引用」
- 在弹窗里勾选
SharedDTOs类库,点击确认 - 若已引用,先移除再重新添加一次,避免引用失效
2. 检查类库与客户端的目标框架匹配
- 右键
SharedDTOs类库 → 「属性」 - 查看「目标框架」,必须和Blazor客户端的目标框架一致(比如都是.NET 6),不要用.NET Framework这类和WASM不兼容的框架
3. 验证命名空间与using语句
- 确认
AppUserDto的命名空间确实是SharedDTOs,检查拼写错误 - 在
Cache类顶部添加using语句:using SharedDTOs; - 若还是不行,尝试用完全限定名测试:
这种方式能识别的话,说明是using语句或命名空间的配置问题public async Task SetAppUser(SharedDTOs.AppUserDto dto) { await _localStorage.SetItemAsync<SharedDTOs.AppUserDto>("AppUser", dto); }
4. 清理重建解决方案
- 在Visual Studio里点「生成」→「清理解决方案」
- 再点「生成」→「重建解决方案」
- 也可以手动删除客户端项目的
bin和obj文件夹后重新生成,清除缓存问题
5. 检查DTO的序列化兼容性
- 确保
AppUserDto的所有属性都是公共的,没有循环引用(Blazored.LocalStorage默认用System.Text.Json序列化,需要DTO符合序列化要求) - 若有特殊类型,可添加
[JsonPropertyName]等序列化特性,基础DTO一般不需要额外配置
内容的提问来源于stack exchange,提问作者Chuck Duncan
相关产品推荐
相关产品推荐

