验证App.Config中的值

时间:2012-12-12 12:55:03

标签: c# configuration app-config

只是一个快速解决问题并且想知道正确的方法。

在Appsettings的appConfig中,我想验证我输入的值。例如,如果我有

<appSettings>
    <add key="UseEncryption" value="false"/>
    <add key="MaxThreshold" value="10"/>
    <add key="ProcessDate" value="01/12/2012"/>
</appSettings>  

程序正常编译和执行。但是,支持团队可以更改这些值并重新运行应用程序。鉴于对Gui进行编码以更改所有这些值并在...的路上验证它们是否有另一种方法来验证它们。

例如,我想检查MaxThrehold是否为Int,Processdate是一个有效的日期等

我正在编写一个将在应用程序启动时运行的函数,该函数将检查每个设置并停止应用程序,如果它们不正确的话。

这是最好的方法吗?为每个应用程序设置都有一个验证器类型函数。

我保留了一个名为CurrentEnvironment的类,在这里我拥有App Config中所需的所有设置的get / sets ..所以对于每个Key我也会有一个validitor函数来检查值。

问候

2 个答案:

答案 0 :(得分:4)

  

我正在编写一个将在应用程序启动时运行的函数,该函数将检查每个设置并停止应用程序,如果它们不正确的话。

这是一个很好的方法,但你确实需要确保这个函数在执行开始时运行。

另一种方法是创建自定义配置部分(继承自ConfigurationSection并添加自定义属性) - 确保这些属性属于您要测试的类型。当配置文件反序列化时,如果无法正确解析类型,则应用程序将无法启动。

答案 1 :(得分:1)

对于每个键,在对象上使用TryParse

DateTime.TryParse(appsetting [键名])

相关问题