改变网络文化.通过编程方式配置

本文关键字:编程 方式 配置 网络 文化 改变 | 更新日期: 2023-09-27 17:50:17

我的配置应用程序从用户那里收集区域性。它在用户做出选择后被捕获。

CultureInfo culture = new CultureInfo(selectedCulture);

现在,我需要更新Web。主应用程序的配置。目前,默认为en-us:

<system.web>
    ...
    <globalization culture="en-us" responseEncoding="utf-8" />
    ...
</system.web>

这是我到目前为止所做的,我没有弄清楚的部分用TODO突出显示。

XmlDocument config = new XmlDocument();
config.Load("C:''inetpub''wwwroot''MyProject''web.config");
// TODO - Modify the globalization culture
config.Save("C:''inetpub''wwwroot''MyProject''web.config");

我看到了通过ID抓取元素的方法,但我的全球化没有ID。当我试图给它一个ID时,我得到了The "id" attribute is not allowed.什么方法将以允许我改变文化的方式操纵全球化元素?我是否需要使用不同的结构来加载文档?

改变网络文化.通过编程方式配置

可以使用Xpath查找元素,然后更新数据:

XmlDocument config = new XmlDocument();
config.Load("C:''inetpub''wwwroot''MyProject''web.config");
var node = config.SelectNodes("system.web/globalization")[0];
node.Attributes["culture"].Value = "new value";
config.Save("C:''inetpub''wwwroot''MyProject''web.config");

你需要考虑:如果你修改你的网页。配置ASP。. NET将重新启动应用程序。

您可以在web中设置您的全球化。配置:

<system.web> ... <globalization culture="auto" responseEncoding="utf-8" /> ... </system.web>

然后,您可以使用@luke-mcgregor所说的Thread.CurrentCulture来检索用户的文化