继承SerialPort并手动触发DataReceived事件

时间:2014-01-30 22:03:34

标签: c# serial-port

我有一个连接到串口并分配DataReceived事件的应用程序。

sp.DataReceived += new SerialDataReceivedEventHandler(sp_DataReceived);

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

我想创建继承SerialPort的TestSerialPort类,并允许我手动触发DataReceived事件。类也应该重写ReadExisting(),这样我就可以返回测试值。

1 个答案:

答案 0 :(得分:0)

你做不到。没有像通常那样引发事件的OnDataReceived()方法因为调用它总是错误的。并且ReadExisting不是虚拟的,因此您无法覆盖它。

因此继承没有意义,你必须更换它。或使用null调制解调器模拟器(如com0com)进行伪造的实际数据传输。通过Google搜索“mock serialport”找到更多选项。