我正在尝试创建一个可以从数据库表中检索“hotfolders”列表的Windows服务,其中包含所有信息到FileSystemWatcher(扫描目录,文件过滤器等)。
但是,当我想将Created事件处理程序添加到FileSystemWatcher时,这就解决了这个问题。
id hotFolderName directory fileFilter engineModule includeSubdirs
1 PDFinvoices c:/pdf *.pdf pdfModule 0
2 FlatFiles c:/flat *.txt flatModule 1
因此,对于表中的每个帖子,它都会创建一个具有上述设置的FileSystemWatcher但我的问题是当我想将EventHandler绑定到它时。我该如何动态地做到这一点?
所以在这种情况下我想做:
fileSystemWatcher1.Created += new FileSystemEventHandler(dbResultSet("engineModule"));
这可能以某种方式吗?我知道我需要一个名为pdfModule的函数,但这没问题。我只是希望能够添加更多模块,但永远不必更改上面的语法。
在这种情况下,pdfModule可能不在主类中,我想我为每个模块创建一个类。就像pdfModule一样,flatModule ......你明白了。
答案 0 :(得分:0)
您必须创建自己的文件监视器类并在其中包装观察者属性,对于事件,您可以像下面那样处理它
this.yourwatcher.Created += new FileSystemEventHandler(this.yourwatcher_Created);
this.yourwatcher.EnableRaisingEvents = true;
在服务开始活动中,您可以从DB获取所有信息,并可以执行以下操作
this.filemonitor[0] = new CustomFileMonitor("pdfModule"); // This will configure watcher properties for PDF file types and attach event.
this.filemonitor[0].Start();
为每种文件夹类型创建文件监视器的新实例。