2014-12-17 4 views
0

FileSystemWatcher에 대한 모든 정보가 포함 된 데이터베이스 테이블에서 "hotfolders"목록을 검색 할 수있는 Windows 서비스를 만들려고합니다 (dir, 파일 필터 검색 등).FileSystemWatcher에 동적으로 FileSystemEventHandler 추가

그러나이 문제는 Created 이벤트 처리기를 FileSystemWatcher에 추가하려고 할 때 발생합니다. 그래서 테이블에있는 게시물의 각

id hotFolderName directory fileFilter engineModule includeSubdirs 
1 PDFinvoices  c:/pdf  *.pdf  pdfModule  0 
2 FlatFiles  c:/flat  *.txt  flatModule  1 

그것은 위의 설정과은 FileSystemWatcher를 생성하지만 난 그것에 이벤트 핸들러를 묶어 할 때 내 문제입니다. 어떻게 동적으로합니까?

따라서이 경우에는 내가 할 싶습니다

fileSystemWatcher1.Created += new FileSystemEventHandler(dbResultSet("engineModule")); 

어떻게 든 할이 수 있습니까? 나는 pdfModule이라는 함수를 가질 필요가 있다는 것을 알고 있지만 문제는 없다. 난 그냥 더 많은 모듈을 추가 할 수 있지만 위의 구문을 변경할 필요가 싶어요.

이 경우 pdfModule은 기본 클래스에 없을 수도 있습니다. 각 모듈에 대해 하나의 클래스를 만들었습니다. pdfModule처럼, flatModule ... u는 요점을 얻습니다.

답변

0

당신은 당신의 자신의 파일 모니터 클래스를 생성하고 있다는 점에서 감시자의 특성을 감싸고 이벤트에 대해 당신이 DB에서 모든 정보를 얻을 수있는 서비스 시작 이벤트에서

this.yourwatcher.Created += new FileSystemEventHandler(this.yourwatcher_Created); 
this.yourwatcher.EnableRaisingEvents = true; 

아래처럼 처리 할 수 ​​있습니다해야하고 뭔가를 할 수 like

this.filemonitor[0] = new CustomFileMonitor("pdfModule"); // This will configure watcher properties for PDF file types and attach event. 
this.filemonitor[0].Start(); 

각 폴더 유형에 대해 파일 모니터의 새 인스턴스를 만듭니다.