SuperAPI AI 工具集

maui-platform-invoke

编程与开发

查看项目

更新于 10-15 20:34

技能介绍

用途:为在 .NET MAUI 应用中调用平台专属原生 API 提供指导。

决策框架(按场景选择):1-5 行一次性检查用 #if ANDROID 条件编译;带逻辑且需可测试的服务用 Platforms/ 文件夹下的分部类;需可替换实现与 mocking 时用接口加 DI 注册;团队偏好 *.android.cs 命名时在 .csproj 中配置自定义文件模式。默认选择分部类加接口加 DI,仅琐碎内联检查才用 #if。

常见错误:一是滥用 #if 指令,把复杂逻辑埋进条件块,导致不可测试、难阅读;二是分部类命名空间不一致,会导致变成两个无关的类;三是共享代码依赖具体平台类型,无法在测试中 mock,应依赖接口;四是忘记 #else 回退,使不支持平台编译失败。

平台注意事项:Android 上 Platform.CurrentActivity 在 OnCreate 完成前或应用处于后台时为 null,使用前需判空或抛出明确异常;MSBuild 会自动包含 Platforms/{Platform}/ 下的文件,无需 #if,但放在共享文件夹(如 Services/)的平台代码必须用 #if 或条件 <Compile> 项;使用自定义文件模式时文件不会自动包含,需在 .csproj 中添加带平台条件的 <Compile> 项。

检查清单:分部类所有文件命名空间一致;复杂平台代码用分部类而非 #if;共享代码依赖接口;接口在 MauiProgram.cs 中注册 DI;#if 块含 #else 回退;Android 使用前判空 Platform.CurrentActivity;自定义文件模式配置 MSBuild <Compile> 条件。