Добавление EventHandler в соответствии с типом - PullRequest
0 голосов
/ 25 августа 2010

У меня есть список объектов, которые содержат информацию о том, какие классы статических EventHandler должны прослушивать в какую папку.Я знаю, что это не работает, но вы поймете, что идея.

(обработчик событий не обязательно должен быть статическим, класс также может быть одиночным, но каким-то образом мне нужно добавить EventHandler науказан тип)

foreach (Service s in InitialParams.Services)
{
    FileSystemWatcher w = new FileSystemWatcher(s.WatchFolder);
    w.Created += new FileSystemEventHandler(s.Type.GetMethod("FileAdded")); //This doesn't work
    w.EnableRaisingEvents = true;
    watchers.Add(w);
}

1 Ответ

3 голосов
/ 25 августа 2010

Использование Delegate.CreateDelegate(Type, MethodInfo):

MethodInfo method = s.Type.GetMethod("FileAdded");
var handler = (FileSystemEventHandler) Delegate.CreateDelegate
     (typeof(FileSystemEventHandler), method);
w.Created += handler;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...