我有一些对象列表,其中包含有关静态EventHandler应该监听whitch文件夹的类的信息。我知道这不起作用,但你会明白这一点......
(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);
}
答案 0 :(得分:3)
使用Delegate.CreateDelegate(Type, MethodInfo)
:
MethodInfo method = s.Type.GetMethod("FileAdded");
var handler = (FileSystemEventHandler) Delegate.CreateDelegate
(typeof(FileSystemEventHandler), method);
w.Created += handler;