首页 > 解决方案 > 确定当前运行的框架的上下文

问题描述

我有一个 .net 标准库,可以从 .net 框架 4.x 程序或 .net 核心程序调用。当代码执行 .net 标准库中的方法时,我想检查一下调用它的框架的上下文。更具体地说:如果从 4.x 中调用,我想确保 4.x 在标准库中设置静态变量的值,而从核心调用时,我想确保它没有被设置。

标签: .net-standard

解决方案


您可以使用#if预处理器指令来处理它。文章中有目标框架名称的列表,所以你可以做类似的事情

#if NET48 || NET472 || ...
    staticVariable = "SomeStaticValue";
#endif

不过,作为一个小建议,如果您可以在使用它的程序中设置该变量,那可能会更容易。然后可以将其传递到库中并在需要时使用。


推荐阅读