什么是FEATURE_PAL编译器指令,意思是.net 4源代码

我在理解.net 4.0源代码中FEATURE_PAL编译器指令的含义时遇到问题。 几乎在每个访问非托管代码的类中使用它。

PAL =平台适应层。 它首先是CLR的一个细节,使其与操作系统实现隔离开来。 您确实会在.NET 4类的源代码的Reference Source副本中看到它。 它出现在任何对底层操作系统实现有很强依赖性的代码中,绕过这些代码,因为它无法在Windows以外的操作系统上运行。

您可能熟悉使用DEBUG和RELEASE指令来包装特定于测试/生产代码的代码块。

.NET 4.0框架使用FEATURE_PAL编译器指令在较新的平台上执行代码。 它必须通过调用本机dll中的本机方法来适应平台。 因此,该function的名称:’平台适应层’。

在查看Process类的代码后,我看到了这篇文章。 可以想象杀死一个进程在给定平台上的工作方式不同。

考虑在使用ARM处理器的设备上安装的较新版本Windows上运行的代码。 在杀死进程时,您需要在为该平台定制的本机dll中调用方法。

因此,在为这些平台编译框架时,FEATURE_PAL编译器指令被设置为“条件编译符号”。