.net-standard - 确定当前运行的框架的上下文
问题描述
我有一个 .net 标准库,可以从 .net 框架 4.x 程序或 .net 核心程序调用。当代码执行 .net 标准库中的方法时,我想检查一下调用它的框架的上下文。更具体地说:如果从 4.x 中调用,我想确保 4.x 在标准库中设置静态变量的值,而从核心调用时,我想确保它没有被设置。
解决方案
您可以使用#if
预处理器指令来处理它。文章中有目标框架名称的列表,所以你可以做类似的事情
#if NET48 || NET472 || ...
staticVariable = "SomeStaticValue";
#endif
不过,作为一个小建议,如果您可以在使用它的程序中设置该变量,那可能会更容易。然后可以将其传递到库中并在需要时使用。
推荐阅读
- ef-code-first - SQL Server CE Entity Framework 代码优先,指定连接未指定 Initial Catalog 或 AttachDbFileName
- python - 如何在 C++ 中找到值的类型?
- android - 如何正确模拟将在 init 块中使用的属性?
- javascript - instance.render 不是函数。(功能组件)
- vue.js - 如何使用 Object.assign 更新 Vuex 子键?
- python - 纸浆变量的条件
- python - address_get 的目的是什么?
- linux - 我正在尝试使用 awk 提取文件中每一行的一部分
- python - 类型错误:on_ready() 缺少 1 个必需的位置参数:'self' discord.py
- c++ - set.upper_bound() 和 upper_bound(set.begin(), set.end()) stl 的区别