自定义配置验证基于另一个配置值?

时间:2012-05-09 19:17:49

标签: c# .net validation filesystemwatcher custom-configuration

我希望使用.NET FileSystemWatcher创建一个监视某些目录的Windows服务。我的计划是让一个FileSystemWatcher包含IncludeSubdirectores = True。但是我不想监视所有子目录。所以我的方法是创建一个我实际想要监视的目录的“白名单”。如果一个文件被更改并且它在我真正关心的目录中,我会采取一些行动。

现在我的问题来了。我希望在app.config中使用自定义配置部分来构建我的“白名单”。

<ApplicationMonitoring>
    <MainDirectoryMonitored path="C:\MonitoredApps" />
    <SubDirectoriesMonitored>
        <Directory application="App1" path="C:\MonitoredApps\App1" />
        <Directory application="App2" path="C:\MonitoredApps\App2" />
        <Directory application="App3" path="C:\MonitoredApps\App3\SubDir1" />
    </SubDirectoriesMonitored>
</ApplicationMonitoring>

到目前为止这么好吗?我可以将fileSystemWatcher.Path =设置为'MainDirectoryMonitored'的'path'属性,我可以枚举'SubDirectoriesMonitored'并检查它是否是我要监控的。

我想知道的是,是否可以验证,子目录的路径确实落在受监控的主目录路径下的某处。

示例:验证C:\ MonitoredApps \ App3 \ SubDir1确实在C:\ MonitoredApps等下的某处

我知道用户应该非常直观,他们应该正确输入内容,但我想尽可能消除所有错误。

我认为这可以通过某种自定义配置验证器来完成,但是 a)我不确定它是否可以使用配置中的另一个值进行验证 和
b)我不知道如何做到这一点:)

0 个答案:

没有答案