加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – OwinMiddleware不保留.net 4.6中的文化变化.*

发布时间:2020-12-16 07:25:33 所属栏目:asp.Net 来源:网络整理
导读:我有一个非常好的owin文化中间件. 它只是根据网址改变文化.这完全适用于4.5.*.现在当runtiome更改为4.6.1时,文化不再保留,因此它不起作用. 我可以在一个非常简单的解决方案中重现它,只有这个中间件模拟文化变化 public class CultureMiddleware : OwinMiddle
我有一个非常好的owin文化中间件.

它只是根据网址改变文化.这完全适用于4.5.*.现在当runtiome更改为4.6.1时,文化不再保留,因此它不起作用.

我可以在一个非常简单的解决方案中重现它,只有这个中间件模拟文化变化

public class CultureMiddleware : OwinMiddleware
{
    public CultureMiddleware(OwinMiddleware next)
        : base(next)
    {
    }

    public override async Task Invoke(IOwinContext context)
    {
        var culture = new CultureInfo("es-ES");
        Thread.CurrentThread.CurrentCulture = culture;
        Thread.CurrentThread.CurrentUICulture = culture;

        CultureInfo.CurrentCulture = culture;
        CultureInfo.CurrentUICulture = culture;


        await Next.Invoke(context);
    }
}

我将中间件附加到它执行的管道但是当我调用一个动作时,控制器没有文化(就像在.net 4.5.1中那样)

我已经在这里发布了,但支持非常慢.每两周一次回答然后看起来他们没有尝试过他们写的东西:-(

https://connect.microsoft.com/VisualStudio/feedback/details/2455357

解决方法

我收到了微软的回复,对我有用.

you can try set the following element in your web.config file. This
element has to be child to the <appSettings> element.

<add key="appContext.SetSwitch:Switch.System.Globalization.NoAsyncCurrentCulture" value="true" />

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读