带下划线的WebAPI控制器名称

杰蒂斯

WebAPI对于控制器名称具有命名约定“ FooController”。这类似于ASP.NET MVC。我们的代码库使用下划线将标识符中的单词分开,例如“ Foo_Bar_Object”。为了使控制器名称遵循此约定,我们需要一种将控制器命名为“ Foo_Controller”的方法。

基本上,我们不希望URL路由看起来像“ oursite.com/api/foo_/”,并且我们不想在下划线处到处都设置异常(例如,路由配置,视图文件夹的名称等) 。为此,我们在MVC中执行以下操作:

Global.asax

protected void Application_Start() {

    ...

    ControllerBuilder.Current.SetControllerFactory(new Custom_Controller_Factory());
}

Custom_Controller_Factory.cs

public class Custom_Controller_Factory : DefaultControllerFactory
{
    protected override Type GetControllerType(RequestContext request_context, string controller_name)
    {
        return base.GetControllerType(request_context, controller_name + "_");
    }
}

这似乎完全解决了MVC中所有问题。有没有办法为WebAPI做同样的事情?我听说有一个DefaultHttpControllerFactory的传闻,但在任何地方都找不到。

马克斯·托罗

我认为DefaultHttpControllerSelector是您想要的。

class CustomHttpControllerSelector : DefaultHttpControllerSelector {

   public CustomHttpControllerSelector(HttpConfiguration configuration) 
      : base(configuration) { }

   public override string GetControllerName(HttpRequestMessage request) {

      IHttpRouteData routeData = request.GetRouteData();
      string controller = (string)routeData.Values["controller"]

      return controller + "_";
}

Global.asax

GlobalConfiguration.Configuration.Services.Replace(typeof(IHttpControllerSelector), new sh_Custom_Http_Controller_Selector(GlobalConfiguration.Configuration));

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

带下划线的WebAPI控制器名称

来自分类Dev

带下划线的RegEx验证名称

来自分类Dev

带下划线

来自分类Dev

带下划线的变量

来自分类Dev

带下划线appcompat的Android微调器

来自分类Dev

CakePHP 3带下划线的动态查找器

来自分类Dev

带下划线的反斜线IntelliJ

来自分类Dev

带下划线的地图缩小对象

来自分类Dev

带下划线的字段集图例

来自分类Dev

带下划线.find()的Q许诺

来自分类Dev

带下划线的全文搜索

来自分类Dev

EASELJS-带下划线的文字

来自分类Dev

如何在Rails 3.2中的视图和控制器中使用下划线方法?

来自分类Dev

Laravel 4:URL中带有“ _”下划线而不是“-”的控制器

来自分类Dev

实体类名称转换为带下划线的SQL表名称

来自分类Dev

如何在Java的控制台输出中打印带下划线的字符串

来自分类Dev

带下划线或驼峰大小写的角度$ watch变量名称不会更新

来自分类Dev

在PHP 5.5.1 / Apache 2.4.6中忽略带下划线的标题名称

来自分类Dev

Spring Data JPA存储库方法无法识别带下划线的属性名称

来自分类Dev

C ++-搜索带下划线的字符串时,行解析器停顿

来自分类Dev

禁用带下划线的锚标签内部元素的下划线

来自分类Dev

禁用带下划线的锚标签内部元素的下划线

来自分类Dev

在nginx上获取带下划线的标题

来自分类Dev

带下划线的文本发布到松弛状态

来自分类Dev

用户定义的文字,不带下划线

来自分类Dev

CSS带下划线的文本,数字在行下

来自分类Dev

带下划线_.each()的回调函数

来自分类Dev

LinkLabel不带下划线-紧凑型框架

来自分类Dev

带下划线/ JS的自动完成功能