c# - 如何根据项目中包含的 dll 或包在 .net 中创建条件指令?
问题描述
我正在尝试为 asp.net 核心的Startup类创建可重用的扩展方法。
我想做的一件事是根据真/假输入添加所有不同的用途。
一个示例是ConfigureServices 方法中的services.AddHttpsRedirection 。
我的问题是这种方法需要添加 nuget 包Microsoft.AspNetCore.HttpsPolicy。
我想做的是根据这个包/dll的存在添加一个预处理器指令。
根据我的研究,似乎我需要使用类似的东西:
#if HTTPS_POLICY
services.AddHttpsRedirection(options =>
{
//difference options
});
#endif
但我不知道我将在哪里设置HTTPS_POLICY符号。
我找到了 2 个可能的地方:
- 使用 .csproj 文件,我可以使用 Condition 属性设置DefineConstants元素。
- 我可以在 Visual Studio 中设置条件编译符号。
但我什至不确定这两件事是否不同,它们可能是相同的。
而对于选项 1,我不知道如何使用Condition属性来查找是否存在包引用或 dll。
还要考虑一下,我正在创建一个将被其他项目使用的类库,理想情况下,我不希望那些其他项目必须设置条件符号和东西。
这甚至有可能实现,如果可以,如何实现?
解决方案
推荐阅读
- java - 数据处理平衡
- mysql - Mysql 正确比较日期
- powershell - 使用 powershell 上的 Skype 在线连接器获取用户的 Skype 状态
- django-rest-framework - 使用 Django Rest 在多级嵌套序列化程序中获取数据
- javascript - 我如何同时遍历三个 div 框
- java - 如何在运行时切换绑定(Camel Rest Dsl)
- jinja2 - Jinja2 只有小写的布尔值
- codeigniter - Codeigniter 中的重定向和 this 有什么区别?
- android - 当我从对话框中选择浏览器时,即使安装了应用程序,应用程序链接 android 也没有打开到我的应用程序
- mysql - mysql下单功能