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

Xamarin.Forms Android环境实例化ServiceBusClient抛出NotImplementedException求助

异常诱因
  • Azure.Messaging.ServiceBus 从7.1版本开始,将ServiceBusClient的实现接口从IDisposable调整为IAsyncDisposable。当前使用的Xamarin.Forms Android 运行时(Mono框架)对.NET Standard 2.1 中的IAsyncDisposable类型存在运行时兼容缺陷,实例化过程中调用到未实现的运行时接口方法,因此抛出NotImplementedException异常。
  • 7.0版本包未引入IAsyncDisposable改造,因此可以正常运行。独立NUnit测试运行在完整.NET/.NET Core运行时环境,不存在该兼容缺陷,因此无法复现问题。
  • 2个月前可正常运行是因为当时项目依赖的包版本未升级到7.1+,或是Android运行时环境未做变更。
解决方法
  • 降级NuGet包版本
    直接将Azure.Messaging.ServiceBus包固定到7.0.x版本,该版本经过验证可在当前项目环境下正常运行,是成本最低的适配方案。
  • 升级运行时兼容支持
    如果需要使用高版本ServiceBus包的新特性,可以做以下配置修改:
    • 将Android项目的目标框架版本升级到Android 11(API 30)及以上,新版Mono运行时已经修复了IAsyncDisposable的实现缺陷
    • 项目中手动引入Microsoft.Bcl.AsyncInterfaces NuGet包,补全IAsyncDisposable相关类型的兼容定义
  • 临时适配方案
    实例化ServiceBusClient时传入自定义ServiceBusClientOptions配置,关闭IAsyncDisposable相关的默认初始化逻辑,手动管理对象生命周期,避免调用到存在兼容问题的运行时接口。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 04:18:02