0

我正在使用 ASP.NET Web API v2.0 来构建 Web api。

我需要在 CORS/JSONP 中提供一些控制器/操作,所以我选择使用 WebApiContrib.Formatting.Jsonp。

因为我还没有使用Web API v2.1,所以我只能使用WebApiContrib v0.9.7.0。

如果我在 Global.ascx.cs 中添加 JSONP 格式化程序,它将打开我所有的 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);
    }
}

现在,我的问题是,如果有多个请求进入,该代码是否是线程安全的?

4

0 回答 0