如何根据环境隐藏端点?

时间:2019-09-11 15:19:24

标签: c# asp.net-core swagger

我有一个名为TestController的控制器,用于执行一些测试。每当我在生产环境中时,我都想隐藏该控制器,但在舞台或本地环境中运行时,则不要。 这些端点仍然可以使用,但是我想隐藏所有接受测试的端点。

Picture of how it looks today

1 个答案:

答案 0 :(得分:0)

我想您可以根据构建类型定义条件,并在整个测试控制器类上使用预处理器指令,这意味着您的类在生产中甚至都不会转换为字节码:
您可以查看MSDN官方文档here

基本上要执行此操作,您需要转到:
int marks; if(Grade > marks) passMark = marks; else failedMark = marks; 设置您的配置(左上方),例如Solution Explorer -> Right Click [Project Name] -> Properties -> Build并定义条件编译符号,例如Debug

enter image description here

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

DEBUGSYMBOL

仅当目标配置中存在条件符号时,此代码才会被写入二进制文件并执行。在这种情况下,您只想在#if DEBUGSYMBOL public class TestController{ } #endif 中定义DEBUGSYMBOL

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