使用Reshiru.Blazor.IndexedDb.Framework遇TypeLoadException问题求助
解决Reshiru.Blazor.IndexedDb.Framework的TypeLoadException错误
解决方案
1. 升级数据库框架包
打开NuGet包管理器,将Reshiru.Blazor.IndexedDb.Framework更新到适配你当前.NET版本的最新稳定版。也可以通过包管理器控制台执行命令:
Update-Package Reshiru.Blazor.IndexedDb.Framework
2. 统一JSInterop版本
检查项目中Microsoft.JSInterop的版本,确保它和你的Blazor核心框架版本完全一致(比如.NET 8对应8.0.x版本)。如果版本不一致,在项目的.csproj文件中手动统一:
<ItemGroup> <PackageReference Include="Microsoft.JSInterop" Version="8.0.0" /> <!-- 其他Blazor相关包(如Microsoft.AspNetCore.Components.WebAssembly)也保持相同版本 --> </ItemGroup>
3. 清理重建项目
- 右键项目选择「清理」
- 删除项目根目录下的
bin和obj文件夹 - 重新生成项目,确保所有依赖正确加载
错误原因
*Microsoft.JSInterop.DotNetObjectRef*是.NET Core 3.x中的类型,在.NET 5及后续版本中已被废弃并替换为*DotNetObjectReference<T>*。你使用的Reshiru.Blazor.IndexedDb.Framework版本可能是针对旧版.NET开发的,依赖了已移除的类型,导致运行时无法解析该类,抛出TypeLoadException。
额外检查点
- 升级包后确认
ApplicationDb的构造函数参数与基类IndexedDb的要求匹配,新版本框架可能调整了基类构造逻辑。 - 验证仓储类中
IndexedDbFactory.Create<ApplicationDb>()的调用方式是否符合新版库的API规范,部分版本可能修改了数据库实例化的方法。
内容的提问来源于stack exchange,提问作者Ibanez1408
相关产品推荐
相关产品推荐

