2014-01-30 95 views
-1

我有一個應用程序連接到串行端口並分配DataReceived事件。繼承SerialPort並手動觸發DataReceived事件

sp.DataReceived += new SerialDataReceivedEventHandler(sp_DataReceived); 

void sp_DataReceived(object sender, SerialDataReceivedEventArgs e) 
{     
    string input = sp.ReadExisting(); 
} 

我想創建TestSerialPort類,它繼承了SerialPort並允許我手動觸發DataReceived事件。類還應該重寫ReadExisting(),以便我可以返回測試值。

回答

0

你不行。沒有OnDataReceived()方法就像通常會引發事件一樣,因爲調用它始終是錯誤的。而且ReadExisting不是虛擬的,所以你不能覆蓋它。

因此繼承是沒有意義的,你必須替換它。或者使用com0com等null調制解調器模擬器僞造實際的數據傳輸。通過谷歌搜索「模擬串行端口」找到更多選項。