Как выборочно включить 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);
}
}
Теперь мой вопрос заключается в том, будет ли этот код потокобезопасным, если поступает несколько запросов?