MAUI程序集运行时返回值不一致问题求助
MAUI程序集集成后结果与测试用例不一致的问题排查
问题详情
- 自行开发的MAUI程序集,在测试项目中运行测试用例时,调用Web服务能正确返回4条Order数据,
Delivery Note字段值正常 - 将编译后的(Debug/Release)程序集集成到MAUI应用后,同一接口返回0条Order数据,
Delivery Note字段为null - 测试用例、Postman调用Web服务均正常,仅集成到MAUI应用后出现异常;应用中传入的
SubAdminArea参数与测试用例完全一致
补充背景
已调整WebService逻辑:返回默认对象,仅将Delivery Note设为JSON响应值;若捕获到错误,则将错误信息附加到Delivery Note中
实用排查步骤
1. 核对程序集引用
- 确认MAUI应用引用的是最新编译的程序集,避免使用旧版本dll
- 若为项目引用,检查是否开启“仅生成依赖项”类设置,导致程序集未同步更新
2. 对比请求上下文
- 在MAUI应用中添加日志,输出调用Web服务时的完整请求参数(包括
SubAdminArea、请求头、Cookie等),与测试用例的请求做对比,排查参数不一致或缺失问题 - 检查MAUI应用网络权限:Android需在
AndroidManifest.xml中添加<uses-permission android:name="android.permission.INTERNET"/>,iOS需在Info.plist中配置NSAppTransportSecurity允许网络访问
3. 检查反序列化逻辑
- 确认MAUI应用与测试项目使用同一JSON序列化库(如Newtonsoft.Json或System.Text.Json)且版本一致
- 若使用System.Text.Json,检查属性大小写匹配问题——MAUI环境的序列化配置可能与测试项目不同
- 在程序集的Web服务调用方法中添加日志,输出原始JSON响应内容,验证MAUI应用接收到的响应与测试用例是否一致
4. 完善异常日志
- 在程序集方法中添加精细化异常捕获,不仅捕获Web服务调用异常,还要捕获反序列化过程异常,并记录详细异常信息
- 在MAUI应用中集成日志工具(如Serilog),输出程序集方法执行的完整流程日志,定位问题环节(请求未发送、响应未接收或反序列化失败)
5. 检查编译配置
- 对比测试项目与MAUI应用的编译配置(目标框架、平台、优化选项),排查程序集在不同环境下的行为差异
- 检查Release模式下是否开启IL裁剪,若开启可尝试关闭后重新编译测试,避免程序集逻辑被误裁剪
内容的提问来源于stack exchange,提问作者Kevin Deery
相关产品推荐
相关产品推荐

