.NET Core Web API: 是否可以在 appsettings.json 配置文件中分配控制器路由?

4
我希望我的Web API控制器的路由可以通过配置文件(appsettings.json)动态分配。
我想这可能是一个简单的解决方案。然而,尝试这样做[不出所料]并没有起作用:
private static string route = Configuration.GetValue<string>("Path");

[Route(route)]
// action

这导致了 An attribute argument must be a constant expression, typeof expression, or array creation expression of an attribute parameter type

是否可能达成我想要的目标?如果是,那么最佳实践是什么?我找不到太多关于它的文档,并且希望不要自己编写 HttpListener 以实现相对简单的目标。


1
有基于约定的路由和基于属性的路由。对于基于属性的路由,路由模板是一个常量。对于你想要做的事情,你需要创建自己的路由来覆盖内置框架。 - Nkosi
@Nkosi 谢谢。你能给我发一篇文章或者介绍一些关键词让我去研究吗? - foxtrotuniform6969
1
文档参考 ASP.NET Core 中的路由 - Nkosi
1个回答

4
原来我考虑过度了。
Startup中。
public void Configure(IApplicationBuilder app)
{
    // basic stuff
    var config = services.GetService<IConfiguration>();
    string route = config.GetValue<string>("Path");

    app.UseMvc(routes => {
        routes.MapRoute("someName", route, new { controller = "myController", action = "myAction"});
    });
}
< p >易如反掌。< /p >

1
是的,有时候会发生这种情况。 - Nkosi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接