Я пытаюсь добавить дроссель использования в свое приложение Web Api.Однако пользовательский атрибут не реализуется.
Пользовательский атрибут
using System;
using System.Web;
using System.Web.Caching;
using System.Web.Mvc;
namespace MyApp.Filters
{
public enum TimeUnit
{
Minute = 60,
Hour = 3600,
Day = 86400
}
[AttributeUsage(AttributeTargets.Method, AllowMultiple = true)]
public class ThrottleAttribute : ActionFilterAttribute
{
public TimeUnit TimeUnit { get; set; }
public int Count { get; set; }
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
...
}
}
}
Контроллер
namespace MyApp.Controllers
{
public class GetUsersController : ApiController
{
[Throttle(TimeUnit = TimeUnit.Minute, Count = 5)]
[Throttle(TimeUnit = TimeUnit.Hour, Count = 20)]
[Throttle(TimeUnit = TimeUnit.Day, Count = 100)]
public ICollection<Users> Get(int id)
{
...
}
}
}
AmЯ ухожу?Реализует атрибут неправильно?Расширение неправильного атрибута?Я знаю, что я использую System.Web.Mvc
вместо System.Web.Http.Filters
... но все ресурсы, которые я видел, требовали именно этого.Может быть, у вас есть лучший ответ?:)