首页 > 解决方案 > 如何根据环境大摇大摆地隐藏端点?

问题描述

我有一个名为 TestController 的控制器,用于执行一些测试。我想在生产时隐藏该控制器,但在舞台或本地运行时不隐藏。端点仍然可以使用,但我想隐藏所有正在测试的端点。

今天的样子图片

标签: c#asp.net-coreswagger

解决方案


我想您可以根据构建类型定义条件并在整个测试控制器类上使用预处理器指令。这意味着您的类在生产时甚至不会被翻译成字节码:您可以在此处
查看 MSDN 官方文档

基本上为了做到这一点,你需要去:
Solution Explorer -> Right Click [Project Name] -> Properties -> Build 设置你的配置(左上角),例如Debug并定义你的条件编译符号,例如DEBUGSYMBOL

在此处输入图像描述

现在您可以像这样在代码中使用它:

#if DEBUGSYMBOL
         public class TestController{
         }
#endif 

仅当目标配置中存在条件符号时,此代码才会写入二进制文件并执行。在您的情况下,您只想DEBUGSYMBOLDebug.

PS您可以在任何配置中定义这些条件符号。


推荐阅读