c# - 在 ASP.NET CORE 中动态更改 Route 属性值
问题描述
我正在寻找一种在语法上更改 Route 属性值的方法。
我有一个api路由应该是的场景:
[Route("api/v1/[Controller]")]
或者[Route("api/xyz/v1/[Controller]")]
基于我是否在调试模式下运行它。
[Route("api/v1/[Controller]")]
[ApiController]
public class MyController : BaseController
{
}
我尝试在 Base Controller 中添加一个变量,但意识到我无法在 Route 属性中访问它。
解决方案
编译后不能更改属性的值,因为属性是编译时常量。这也是为什么您不能使用控制器类中的变量作为参数的原因(除非它是const
)
相反,您可以使用预处理器指令来执行此操作
#if DEBUG
[Route("api/v1/[Controller]")]
#else
[Route("api/xyz/v1/[Controller]")]
#endif
(您可能希望将其更改为if RELEASE
并更改为路线)
推荐阅读
- google-apps-script - 脚本查询仅输出公式的第二半
- c - 如何计算没有全局变量的函数调用次数?
- reactjs - 在 redux-react 中对初始组件渲染进行调度并更改状态
- nexus - Talend/Nexus:有没有办法将 talend open studio 与 nexus 服务器连接起来
- wordpress - TwentySeventeen 主题中的自定义分类存档页面
- assembly - 机器代码中缺少 NASM 源中的第一条指令(反汇编)
- git - “在后台自动打包存储库以获得最佳性能”失败并出现奇怪的 Unlink 错误
- powershell - 解析日志文件,匹配字符串数组
- snowflake-cloud-data-platform - 仅使用 REST 和 SQL 命令批量插入到 Snowflake
- c-preprocessor - 如何在 Eclipse CDT 中包含用户预处理器?