Car*_*lZA 14 .net c# configuration configuration-files
我正在用C#编写游戏服务器,并希望在服务器运行时从配置文件重新加载或刷新设置.
理想情况下,我想将设置保存在XML文件中,能够在游戏服务器运行时编辑文件,然后向服务器发送命令以从文件重新加载设置.
我知道我也可以使用数据库来做到这一点,但游戏服务器相当小,我认为将设置保存在平面文件中会更实用.我将对服务器将运行的机器进行文件级访问.
我该怎么用?
ren*_*ene 13
使用http://msdn.microsoft.com/en-us/library/system.configuration.configurationmanager.aspx
使用自定义配置部分,通过设置部分的位置属性,将app.config中的部分连接到外部配置文件.所有xml加载和序列化都由这些自定义类完成
代码由CarelZA提供:
首先,ConfigurationManager通过config部分缓存应用程序的配置,您可以调用ConfigurationManager.RefreshSection()来使特定部分的缓存无效.
在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"/>
Run Code Online (Sandbox Code Playgroud)
我创建了一个名为"game.config"的文件,并将"复制到输出目录"设置为" 始终复制 ".
在game.config中:
<gameSettings>
<add key="SettingName" value="SettingValue" />
</gameSettings>
Run Code Online (Sandbox Code Playgroud)
然后在代码中,为了访问任何设置:
settings = (NameValueCollection) ConfigurationManager.GetSection("gameSettings");
return settings["SettingName"];
Run Code Online (Sandbox Code Playgroud)
并在重新加载命令发送到服务器时随时重新加载游戏配置:
ConfigurationManager.RefreshSection("gameSettings");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15464 次 |
| 最近记录: |