首页新闻找找看学习计划

webapi 版本控制控制器名称获取

0
[已解决问题] 解决于 2018-07-24 17:31

webapi项目需要进行版本控制。我继承了类IHttpControllerSelector并在SelectController方法需要获取控制器名称。因为项目存在特性路由,请问该如何获取呢

snow-june的主页 snow-june | 菜鸟二级 | 园豆:206
提问于:2017-12-08 17:32
< >
分享
最佳答案
0

直接给出代码,供参考。其中ApiGroups里面的keys就是controller的名字

private void LoadAssemblies()
        {
            var configuration = new HttpConfiguration(new HttpRouteCollection());
            IAssembliesResolver assembliesResolver = new AnotherAssemblyResolver();
            configuration.Services.Replace(typeof(IAssembliesResolver), assembliesResolver);

            configuration.MapHttpAttributeRoutes();
            configuration.EnsureInitialized();
            var apiExplorer = new ApiExplorer(configuration);
            var descriptions = apiExplorer.ApiDescriptions;
            ApiGroups = descriptions.Any() ?
                descriptions
                .GroupBy(d => d.ActionDescriptor.ControllerDescriptor.ControllerName)
                .ToDictionary(para => para.Key, para => para.ToList()) : new Dictionary<string, List<ApiDescription>>();
        }
奖励园豆:5
冰冻千尺 | 菜鸟二级 |园豆:323 | 2018-01-01 14:29
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册