Маршруты атрибутов не могут быть унаследованы. Это было преднамеренное дизайнерское решение. Мы не чувствовали себя правильно и не видели реальных сценариев, где было бы разумно наследовать их.
Не могли бы вы дать более реалистичный сценарий относительно того, где вы хотели бы использовать это?
[Обновление (3/24/2014)] В предстоящей версии 5.2 MVC Web API , там будет точка расширяемости, называемая System.Web.Http.Routing.IDirectRouteProvider
, через которую вы можете включить сценарий наследования, который вы ищете здесь. Вы можете попробовать это самостоятельно, используя последние ночные сборки (документация о том, как использовать ночные сборки, здесь здесь )
[Обновление (7/31/2014)] Пример того, как это можно сделать сделать в версии Web API 2.2
:
config.MapHttpAttributeRoutes(new CustomDirectRouteProvider());
//---------
public class CustomDirectRouteProvider : DefaultDirectRouteProvider
{
protected override IReadOnlyList
GetActionRouteFactories(HttpActionDescriptor actionDescriptor)
{
// inherit route attributes decorated on base class controller's actions
return actionDescriptor.GetCustomAttributes
(inherit: true);
}
}