我们有很多带有2个项目的web api解决方案。一个项目设置web api配置,另一个项目包含控制器。
每个web api配置都设置为:
DuplicateFilter df = new DuplicateFilter("Key");
df.setKeepMode(DuplicateFilter.KM_USE_LAST_OCCURRENCE);
TopDocs hits = searcher.search(query, df, 10);
当我们在每个控制器/动作上使用Route / Prefix-Attributes时,我问自己,config.Routes.MapHttpRoute方法调用是否仍然有效?
实际上,只要我在控制器上注释路由属性,至少我会覆盖web api的约定行为。因此,方法调用已过时。
这是对的吗?或者还有什么需要考虑,因为我想在每个项目中删除此方法调用。
答案 0 :(得分:2)
仍将应用基于会议的路线。基于属性的路由优先(因为它们是先配置的)但如果操作方法同时具有匹配的属性路由和常规路由,两个路由将映射到操作问题。
如果您只想使用基于属性的路由,删除基于约定的路由映射可能是明智之举,以防止意外行为(即在非预期路由下暴露操作)。
当然,您需要确保在任何地方都不会无意中依赖基于约定的路由!