在属性路由的文档中,有一系列警告说“匹配路由时的性能增强”不起作用。他们在谈论什么样的性能增强,这对于基于生产的系统中的性能意味着什么 - 它是否足够重要以至于不考虑在生产系统上进行属性路由?
关于自定义路由处理程序和查询字符串参数约束的更多细节怎么样?“自定义”是什么意思,对于查询字符串约束,是对数据类型的约束吗?
我想更多地了解这一点,并衡量它在我的用例中的影响,以判断 web-api 的属性路由包是否适合我的生产 api。
在属性路由的文档中,有一系列警告说“匹配路由时的性能增强”不起作用。他们在谈论什么样的性能增强,这对于基于生产的系统中的性能意味着什么 - 它是否足够重要以至于不考虑在生产系统上进行属性路由?
关于自定义路由处理程序和查询字符串参数约束的更多细节怎么样?“自定义”是什么意思,对于查询字符串约束,是对数据类型的约束吗?
我想更多地了解这一点,并衡量它在我的用例中的影响,以判断 web-api 的属性路由包是否适合我的生产 api。
概括
根据ASP.NET v5 RTM Beta进行评估,无论是从源代码还是夜间构建,因为它包括 AttributeRouting。
细节
合并
在 AR 的包所有者 Tim McCall 的合作下,AttributeRouting 已被吸收到 ASP.NET v5 RTM 中。自 2013 年 2 月以来,v5 一直处于测试阶段。请参阅ASP.NET 文档站点上的ASP.NET 路线图。
自定义路由处理程序
参数约束
基于 HttpVerbAttribute 的类支持(来自AttributeRoutingTest.cs的示例):
参数类型约束
[HttpGet("controller/{id:int}")]
public string Get(int id) { ... }
可选参数
[HttpGet("optional/{opt1?}/{opt2?}")]
public string Optional(string opt1 = null, string opt2 = null) { ... }
属性内默认值
[HttpGet("default/{default1=D1}/{default2=D2}")]
public string Default(string default1, string default2) { ... }
通配符参数
[HttpGet("wildcard/{*wildcard}")]
public string Wildcard(string wildcard) { ... }