在给出我的答案之前,我希望记住使用 app.config 的推荐方法是通过applicationSettings
anduserSettings
部分。这些部分允许存储和检索配置属性,而不会出现将字符串转换为特定数据类型的问题。
您的示例,如果使用 SerializeAs="Integer" 存储在 applicationSettings 中,则可以使用 GridSize 配置回读
int size = Properties.Settings.Default.GridSize; //no conversion needed here
但是,如果您仍想使用过时 appSettings
的部分,那么我建议创建一个静态 ConfigurationUtility 类,其中包含您的配置值以及您可以集中处理这些值的位置(包括保存和加载操作)
public static class ConfigurationUtility
{
private static int _gridSize = -1; // default for not initialized
public static int GridSize
{
get
{
if(_gridSize == -1)
_gridSize = Int.Parse(ConfigurationManager.AppSettings["GridSize"])
return _gridSize;
}
}
}
这只是一个例子,需要更健壮的代码来处理缺少键的情况,键的预期数据类型无效值