gpt4 book ai didi

c# - 在运行时从外部配置文件重新加载配置设置

转载 作者:可可西里 更新时间:2023-11-01 07:55:56 25 4
gpt4 key购买 nike

我正在用 C# 编写游戏服务器,并希望在服务器运行时从配置文件重新加载或刷新设置。

理想情况下,我想将设置保存在 XML 文件中,能够编辑游戏服务器运行时的文件,然后向服务器发送重新加载的命令文件中的设置。

我知道我也可以使用数据库来执行此操作,但游戏服务器相当小,我认为将设置保存在平面文件中会更实用。我将对运行服务器的机器具有文件级访问权限。

我应该使用什么?

最佳答案

使用http://msdn.microsoft.com/en-us/library/system.configuration.configurationmanager.aspx

使用自定义配置部分,通过设置部分的位置属性将 app.config 中的部分连接到外部配置文件。所有的xml加载和序列化都是由那些自定义类完成的

代码由 CarelZA 提供:

首先,ConfigurationManager通过config section来缓存应用的配置,你可以调用ConfigurationManager.RefreshSection()让特定section的缓存失效。

在 app.config 中我添加了:

<configSections>
<section name="gameSettings"
type="System.Configuration.NameValueSectionHandler,system , Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, Custom=null"/>
</configSections>
<gameSettings configSource="game.config"/>

我创建了一个名为“game.config”的文件,并将“复制到输出目录”设置为“始终复制”。

在游戏配置中:

<gameSettings>
<add key="SettingName" value="SettingValue" />
</gameSettings>

然后在代码中,为了访问任何设置:

settings = (NameValueCollection) ConfigurationManager.GetSection("gameSettings");
return settings["SettingName"];

并在重新加载命令发送到服务器时随时重新加载游戏配置:

ConfigurationManager.RefreshSection("gameSettings");

关于c# - 在运行时从外部配置文件重新加载配置设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4934898/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com