我正在使用 VS 17.11 和 MAUI 8。
有很多关于“依赖注入”的文章,包括基于平台的文章。
但是这样的事情似乎也是可能的:
#if IOS
string platformName = "This is iOS";
#elif WINDOWS
string platformName = "This is Windows";
#elif ANDROID
string platformName = "This is Android";
#else
string platformName = "This is UNKNOWN platform";
#endif
但是,这到底是如何运作的呢? 我的印象是 MAUI 项目将构建共享代码(作为库?),然后链接到特定于平台的代码,所有这些都使用“通用中间语言”。 但是,有了这种机制,似乎每个平台都会单独构建。
我错过了什么吗? 如果这是一种合理的做事方式,那么使用依赖注入来完成这样简单的事情是否有优势?
首先可以查看官方文档关于条件编译。
#if <Platform>
是预处理器指令。
仅当指定的符号已定义时,C# 编译器才会编译 #if 指令和 #endif 指令之间的代码,否则当 ! 时未定义。使用 not 运算符。
关于Maui中的依赖注入的官方文档没有提及平台代码。依赖注入几乎用在maui共享库而不是平台部分。