在要提供 /api/MyApi 以及 /api/v2/MyApi 只有特定某個 action 需要 override
或是產品提供基礎功能的 abstract class 提供給專案客製空間時可以使用到
作法是 override 掉 DefaultDirectRouteProvider,將 GetCustomAttribute 調整為 inherit: true,讓 HttpActionDescriptor 會去找繼承的別裡面的 attribute
public class CustomDirectRouteProvider : DefaultDirectRouteProvider
{
protected override IReadOnlyList GetActionRouteFactories(HttpActionDescriptor actionDescriptor)
{
return actionDescriptor.GetCustomAttributes
(inherit: true);
}
}
於 WebApiConfig 中調整為如下:
public static void Register(HttpConfiguration config)
{
config.MapHttpAttributeRoutes(new CustomDirectRouteProvider());
// 其他略..
}
沒有留言:
張貼留言