【问题标题】:What is FEATURE_PAL compiler directive means in .net 4 source codeFEATURE_PAL 编译器指令在 .net 4 源代码中的含义是什么
【发布时间】:2011-07-18 19:38:17
【问题描述】:

我无法理解 FEATURE_PAL 编译器指令在 .net 4.0 源代码中的含义。它几乎用于所有访问非托管代码的类。

【问题讨论】:

  • 嗯....NET 4.0 源代码?你的意思是,比如标题?

标签: c# .net


【解决方案1】:

PAL = 平台适配层。它首先是 CLR 的一个细节,将它与操作系统实现隔离开来。您确实会看到它在 .NET 4 类的源代码的参考源副本中使用。它出现在任何强烈依赖底层操作系统实现的代码中,绕过此类代码,因为它无法在 Windows 以外的操作系统上运行。

【讨论】:

    【解决方案2】:

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

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

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

    想想您的代码在安装在使用 ARM 处理器的设备上的较新版本的 Windows 上运行。终止进程时,您需要调用针对该平台量身定制的本机 dll 中的方法。

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

    【讨论】:

    • 从 .NET Framework 参考源代码来看,目前 FEATURE_MACL 这个名称似乎是 FEATURE_PAL 的同义词。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-03
    • 2021-01-28
    • 2017-01-09
    相关资源
    最近更新 更多