Ωme*_*Man 0 .net-core asp.net-core-webapi
建议使用哪种方法允许在开发中公开静态的api甚至控制器,但是在发布到其他环境后不可用?
没有内置的方法可以做到这一点。您必须执行诸如注入IHostingEnvironment控制器之类的操作,然后在操作中进行如下检查:
if (!env.IsDevelopment())
{
return NotFound();
}
Run Code Online (Sandbox Code Playgroud)
这样一来,看起来该路由实际上不在开发环境之外。如果您要做的足够多,那么创建可以应用的自定义资源过滤器实际上可能会更好:
public class DevelopmentOnlyAttribute : Attribute, IResourceFilter
{
public void OnResourceExecuting(ResourceExecutingContext context)
{
var env = context.HttpContext.RequestServices.GetService<IHostingEnvironment>();
if (!env.IsDevelopment())
{
context.Result = new NotFoundResult();
}
}
public void OnResourceExecuted(ResourceExecutedContext context)
{
}
}
Run Code Online (Sandbox Code Playgroud)
然后可以将其应用于相关的操作,例如:
[DevelopmentOnly]
public IActionResult Foo()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
143 次 |
| 最近记录: |