ASP NET 样板 - 如何 override/redirect 调用 App Service?

ASPNET Boilerpate - How to override/redirect calls to App Service?

我有两个 AppService,TestAppService 和 Test2AppService。我希望将对 Test 的调用重定向到 Test2,例如:

http://localhost:21021/api/services/app/Test/GetAll

应该给我

的结果
http://localhost:21021/api/services/app/Test2/GetAll

但是我无法编辑 TestAppService。

目前我的解决方法是在模块初始化期间重命名控制器:

.ConfigureControllerModel(model =>
    {
        if (model.ControllerName == "Test")
            model.ControllerName = "Test2";
        // Need to rename Test2 or it would be ambiguous
        else if (model.ControllerName == "Test2")
            model.ControllerName = "Test";
    });

是否有 better/simpler 方法来做到这一点?我实际上只需要重定向一种方法。

假设您使用的是 AspNetCore。

您可以使用 [RemoteService(false)] 禁用 TestAppService,请参阅 https://aspnetboilerplate.com/Pages/Documents/AspNet-Core#application-services-as-controllers

然后将 [Route("api/test/[action]")] 之类的路由属性添加到您的 Test2AppService

能够使用 Order = -1 的 HttpGet 属性做到这一点:

[HttpGet("api/services/app/Test/GetAll", Order = -1)]
public async override Task<List<Data>> GetAll()