1

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

在 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 的类,在这里我拥有应用程序配置中我需要的任何设置的所有获取/设置。所以对于每个键,我还将有一个验证器函数来检查值。

问候

4

2 回答 2

4

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

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

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

于 2012-12-12T13:00:32.210 回答
1

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

DateTime.TryParse(appsetting[keyname])

于 2012-12-12T13:01:39.640 回答