在Web API中初始化控制器之前进行一些操作(设置语言)

现在,他谁不能被命名。

我想设置LanguagecontrollerWeb API (做国际化全球化)。

我正在写一个名为的属性,SetLanguageweb-api controller用它装饰我的

就像是,

[SetLanguage]
public ServiceRequestController : ApiController

但是问题是这样的:

public class SetAcceptLanguageHeader : Attribute, IControllerConfiguration
    {
        public void Initialize(HttpControllerSettings controllerSettings, HttpControllerDescriptor controllerDescriptor)
        {
            if (controllerSettings.Request.Headers.AcceptLanguage != null && controllerContext.Request.Headers.AcceptLanguage.Count > 0)
            {
                var culture = new CultureInfo(controllerContext.Request.Headers.AcceptLanguage.First().Value);
                Thread.CurrentThread.CurrentCulture = culture;
                Thread.CurrentThread.CurrentUICulture = culture;
            }
        }
    }

但是,我无法执行此操作,因为无法Request访问controllerSettings

(尽管我知道使用BaseController和重写Initialize方法来实现相同的想法,但我正在尝试使用此[SetLanguage]Attribute`)

有什么想法吗?

穆图

您可以尝试使用动作过滤器,例如

public class SetLanguageAttribute : ActionFilterAttribute
{
    public override void OnActionExecuting(HttpActionContext actionContext)
    {
        //Use actionContext.Request to access your request
    }
}

然后可以使用[SetLanguage]属性来装饰该操作方法,可以根据需要将其设置为区域性。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在对Web API 2进行操作之前要先做一些事情

Web API:在操作或控制器级别配置JSON序列化程序设置

如何使用 Ninject 将初始化实例传递给 Web API 控制器的构造函数

我可以在“继承创建”之前进行一些初始化吗?

Web API 控制器中多个操作的通用逻辑

在api控制器初始化之前设置参数

在调用操作之前已处理导出的Web API控制器

如何在启动类上传递一些属性并在控制器上对其进行初始化

WEB API-在控制器或操作级别进行授权(不进行身份验证)

如何在测试中的ApplicationEvent侦听器之前进行一些设置工作

需要在asp.net核心Web API控制器方法中添加Json序列化设置

Web Api控制器无法解决操作

验证后从Web API控制器操作返回图像

如何为代理控制器设置Web API路由?

在Web API控制器中进行通用查询/ getbyspecification?

在它绑定到 asp.net web api 2 中的控制器操作方法之前,无论如何要修改请求正文

Asp.Net MVC中Web API的默认控制器操作

在同一控制器上的Web Api中进行多个POST调用的最佳实践

在初始化函数中终止Web api请求的执行

如何在Web API控制器中全局设置会话变量?

如何在.net MVC Web API控制器方法中设置内容范围标头?

通过Web API中的自定义属性对控制器进行分组

Web API控制器上的统一解析实例

Web API控制器中的多个HttpPost方法

C#Web Api中的动态注册控制器

在Web API控制器中构建JSON响应

忽略ASP.NET Web API中的控制器

从Web API控制器返回JSON

Web API控制器调用问题