Как выборочно включить JSONP в действиях WebAPI?

Я использую ASP.NET Web API v2.0 для создания веб-API.

Мне нужно сделать некоторые из контроллеров / действий доступными в CORS/JSONP, поэтому я решил использовать WebApiContrib.Formatting.Jsonp.

Поскольку я пока не использую Web API v2.1, я могу использовать только WebApiContrib v0.9.7.0.

Если я добавлю форматер JSONP в Global.ascx.cs, он откроет все мои контроллеры и действия для CORS/JSONP, поэтому я написал ниже Фильтр действий для добавления и удаления форматера в определенное время.

[AttributeUsage(AttributeTargets.Method, AllowMultiple = false)]
public class EnableCorsAttribute : System.Web.Http.Filters.ActionFilterAttribute
{
    public override void OnActionExecuting(System.Web.Http.Controllers.HttpActionContext actionContext)
    {
        var config = System.Web.Http.GlobalConfiguration.Configuration;
        config.Formatters.Insert(0, new WebApiContrib.Formatting.Jsonp.JsonpMediaTypeFormatter(config.Formatters.JsonFormatter));
    }

    public override void OnActionExecuted(System.Web.Http.Filters.HttpActionExecutedContext actionExecutedContext)
    {
        var config = System.Web.Http.GlobalConfiguration.Configuration;
        config.Formatters.RemoveAt(0);
    }
}

Теперь мой вопрос заключается в том, будет ли этот код потокобезопасным, если поступает несколько запросов?

0 ответов