這是我的第一個C#文章。綁定事件在另一個類
我對事件綁定有疑問。
我有一個FileWatcher
,我想綁定到一個名爲FileWatcherEvents
的單獨類中定義的函數。
我不希望事件在Program
類中聲明,這怎麼辦?如您所見,我嘗試將Created
和Deleted
的事件綁定在一起。
問題是,當我刪除或創建文件夾中的文件時,不會調用這些事件。但是當我在Program
類中聲明事件處理函數時,它確實有效。
任何幫助或見解表示讚賞。
計劃
using System.IO;
class Program : ServiceBase
{
private FileSystemWatcher _watcher;
public Program()
{
FileWatcherEvents fwe = new FileWatcherEvents();
this._watcher = new FileSystemWatcher();
((System.ComponentModel.ISupportInitialize)(this._watcher)).BeginInit();
//
// _watcher
//
this._watcher.EnableRaisingEvents = true;
this._watcher.Filter = "*.txt";
this._watcher.NotifyFilter =
((NotifyFilters)(((((NotifyFilters.FileName
| NotifyFilters.DirectoryName)
| NotifyFilters.LastWrite)
| NotifyFilters.LastAccess)
| NotifyFilters.CreationTime)));
this._watcher.Path = "T:\\out\\";
this._watcher.Deleted += new FileSystemEventHandler(fwe.ShipmentFileCreated);
this._watcher.Created += new FileSystemEventHandler(fwe.FileDeleted);
((System.ComponentModel.ISupportInitialize)(this._watcher)).EndInit();
}
static void Main(string[] args)
{
Program prg = new Program();
Console.Write(FileManager.getNewestFile("T:\\out\\"));
while (Console.Read() != 'q') ;
}
}
FileWatcherEvents
class FileWatcherEvents
{
public void ShipmentFileCreated(object sender, FileSystemEventArgs e)
{
Console.WriteLine("CREATED: " + sender.ToString() + e.ToString());
}
public void FileDeleted(object sender, FileSystemEventArgs e)
{
Console.WriteLine("DELETED: " + sender.ToString() + e.ToString());
}
}
嗯,有趣的想法,我會嘗試的, – Triztian
不,它沒有工作,宣佈它是「程序」的成員,仍然沒有登錄控制檯 – Triztian
你確定事件甚至被解僱嗎?你有沒有得到這個與Program類的事件處理程序一起工作? – BlueMonkMN