【发布时间】:2017-11-02 01:32:03
【问题描述】:
我有几个自定义配置元素(从 ConfigurationElement 派生的类),一些属性具有验证属性,其他是枚举类型。
问题是可以正确创建配置对象,但只有在访问属性时才会抛出异常。 (在这种情况下,字符串不会解析为任何已知的枚举值)。
我的问题是,在我继续之前,我能否在程序启动时确保 app.config 文件中的任何自定义部分都没有问题?
谢谢,拉德克
【问题讨论】:
-
您可以在应用程序启动时加载每个自定义部分并对其进行验证。当您尝试加载它们时,它们会抛出异常,或者如果它们包含您确定无效的其他值。
-
问题是现在会抛出异常,直到您尝试访问自定义部分的特定属性。所以这并不容易,除非有一个技巧可以以更自动化的方式完成。
-
您可以使用data annotations 标记自定义配置类并验证它们。即使验证没有做任何事情,我认为它会强制访问属性,这反过来会导致您的异常提前抛出。
-
我尝试使用极少数可应用于类的数据注释属性之一标记配置类(ScaffoldTableAttribute),但没有,它没有帮助。仍然读取类,但仅在访问它们时验证属性。
标签: c# .net app-config