Asp.net web api webapi中的属性计算限制

Asp.net web api webapi中的属性计算限制,asp.net-web-api,attributerouting,Asp.net Web Api,Attributerouting,在attributerouting的文档中,有一系列警告表示“”不起作用。他们谈论的是什么样的性能增强,以及在基于生产的系统中,这意味着什么?是否足够显著地不考虑生产系统上的属性? 关于自定义路由处理程序和查询字符串参数约束的更多细节如何?他们所说的“自定义”是什么意思?至于查询字符串约束,是数据类型上的约束吗 我想进一步了解这一点,并在我的用例中衡量它的影响,以判断web api的属性路由包是否适合我的生产api。摘要 根据、来自或进行评估,因为它包括属性计算 细节 合并 在AR的包所有者Ti

在attributerouting的文档中,有一系列警告表示“”不起作用。他们谈论的是什么样的性能增强,以及在基于生产的系统中,这意味着什么?是否足够显著地不考虑生产系统上的属性?

关于自定义路由处理程序和查询字符串参数约束的更多细节如何?他们所说的“自定义”是什么意思?至于查询字符串约束,是数据类型上的约束吗


我想进一步了解这一点,并在我的用例中衡量它的影响,以判断web api的属性路由包是否适合我的生产api。

摘要

根据、来自或进行评估,因为它包括属性计算

细节

合并

在AR的包所有者Tim McCall的合作下,AttributeRouting已被吸收到ASP.NET v5 RTM中。v5自2013年2月以来一直处于测试阶段。请继续看

自定义路由处理程序

参数约束

基于HttpVerbAttribute的类支持(示例来自:

参数类型约束

    [HttpGet("controller/{id:int}")]
    public string Get(int id) { ... }
可选参数

    [HttpGet("optional/{opt1?}/{opt2?}")]
    public string Optional(string opt1 = null, string opt2 = null) { ... }
    [HttpGet("wildcard/{*wildcard}")]
    public string Wildcard(string wildcard) { ... }
在属性默认值中

    [HttpGet("default/{default1=D1}/{default2=D2}")]
    public string Default(string default1, string default2) { ... }
通配符参数

    [HttpGet("optional/{opt1?}/{opt2?}")]
    public string Optional(string opt1 = null, string opt2 = null) { ... }
    [HttpGet("wildcard/{*wildcard}")]
    public string Wildcard(string wildcard) { ... }

我查看了那个文档,并在问题中提到了它,特别是概述的句子……我已经添加到我的答案中,但请注意,我过去是,现在不是指你访问的AttributeRouting网站。我建议您访问ASP.NET路线图网站,其中解释了AttributeRouting现在是ASP.NET的一部分。AttributeRouting所有者Tim McCall试图让ASP.NET团队将Web API部件中的某些项从内部更改为公共。他与ASP.NET合作将AR合并到中,这将使他能够更改以解决概述的项目。一旦我在代码中找到他想要的性能提升已经实现的细节,我会添加一条评论或扩展我的答案。我想我有点困惑,路线图页面只是有一段关于它的简介和属性路由项目的链接。无论如何,这是否意味着属性路由中的所有路由都存在性能问题?它是否比asp.net mvc慢很多?如果是,是否有任何基准测试?列出的“匹配路由时的性能增强”听起来非常模糊。我试图衡量这到底是一个多大的“问题”,或者这仅仅是一个增量增强。我的理解是Web API无法增强,MVC已经增强了。当我找到密码时,我会在这里更新…@Troy,我还没有回去挖掘这个答案。我所说的“Web API”是指“Web API的属性路由”。增强可以在ASP.NET Web API 2.0或ASP.NET Web API vNext中完成。