Web Api 2 IHttpRoute DataTokens

时间:2014-07-24 10:47:37

标签: c# asp.net asp.net-web-api asp.net-web-api2

我们正在使用WebApi 2,我找不到在配置创建的IHttpRoute上设置DataTokens的方法.Routes.MapHttpRoute。

我下载了源代码,看起来DataTokens总是设置为null。有没有办法填充这些值,因为我们想要使用这些值,因为我们已经为Web Api提出了我们自己的区域实现,这也允许我们进行版本但不能设置这些值导致我们出现问题。

非常感谢

1 个答案:

答案 0 :(得分:0)

我继续查看源代码并决定添加此扩展但是必须有一个原因,为什么DataTokens被取消,我担心我会以这种方式导致其他地方重载的问题,因为它很简单为什么不是最初包含此过载。任何人都可以建议为什么这是一个坏主意?

public static IHttpRoute MapHttpRoute(this HttpRouteCollection routes, string name, string routeTemplate, object defaults, object constraints, HttpMessageHandler handler, object dataTokens)
{
  HttpRouteValueDictionary defaultsDictionary = new HttpRouteValueDictionary(defaults);
  HttpRouteValueDictionary constraintsDictionary = new HttpRouteValueDictionary(constraints);
  HttpRouteValueDictionary dataTokensDictionary = new HttpRouteValueDictionary(dataTokens);
  IHttpRoute route = routes.CreateRoute(routeTemplate, defaultsDictionary, constraintsDictionary, dataTokens: dataTokensDictionary, handler: handler);
  routes.Add(name, route);
  return route;
}
相关问题