如何查找VS2019 Output窗口扫码日志对应的事件并添加监听?
定位日志对应事件的方法
- 你使用的Honeywell扫码NuGet包输出的这条调试日志,对应
BarcodeReader类的BarcodeDataReceived公开事件,日志是SDK内部触发该事件时默认输出的调试信息,不需要查找私有内部事件。 - 你可以给
BarcodeReader实例的BarcodeDataReceived事件加断点验证,扫码时断点触发时间和日志打印时间完全一致,即可确认对应关系。
添加自定义监听器的实现方案
- 先完成
BarcodeReader实例的初始化和设备连接,示例代码如下:
// 声明扫码器全局实例 private BarcodeReader _barcodeReader; // 初始化逻辑 public void InitBarcodeReader() { _barcodeReader = new BarcodeReader(); // 连接扫码设备 _barcodeReader.Open(); // 绑定自定义事件监听器 _barcodeReader.BarcodeDataReceived += OnBarcodeReceived; // 可选:关闭SDK默认的调试日志输出 // BarcodeReader.EnableDebugLog = false; } // 自定义事件处理方法 private void OnBarcodeReceived(object sender, BarcodeDataReceivedEventArgs args) { // 可直接获取日志中对应的所有字段 string barcodeContent = args.Data; string codeId = args.CodeId; string aimId = args.AimId; // 此处添加你的自定义业务逻辑 // 比如存入本地、上传服务端、更新UI等 } // 页面/应用销毁时移除监听器,避免内存泄漏 public void DisposeBarcodeReader() { if (_barcodeReader != null) { _barcodeReader.BarcodeDataReceived -= OnBarcodeReceived; _barcodeReader.Close(); _barcodeReader.Dispose(); } }
- 如果不需要保留SDK默认输出的调试日志,开启代码中注释的
BarcodeReader.EnableDebugLog = false配置即可。
内容的提问来源于stack exchange,提问作者Fabrizio La Racca
相关产品推荐
相关产品推荐

