我正在使用Xamarin.Forms为HoneyWell扫描仪设备构建扫描仪应用程序。 第一个版本只是Windows。
在共享项目中,我创建了IScannerService接口,该接口将用于依赖注入。该界面包含一个OnScan事件。
在我的UWP项目中,我在ScannerService类中实现了这个接口。
它使用PointOfService.BarcodeScanner来使用设备连接的扫描仪。 (以下:https://msdn.microsoft.com/en-us/library/dn792060(v=winembedded.81).aspx) 这一切都很好,除了:
在我的事件处理方法中:
private void ClaimedScanner_DataReceived(ClaimedBarcodeScanner sender, BarcodeScannerDataReceivedEventArgs args)
{
var dataReader = Windows.Storage.Streams.DataReader.FromBuffer(args.Report.ScanData);
var output = dataReader.ReadString(args.Report.ScanData.Length);
OnScan?.Invoke(sender, output);
}
args.Report.ScanData
会返回System.__ComObject
而不是预期的IBuffer
。
我试图找出这个System.__ComObject
究竟是什么,但我并没有真正理解。但最重要的是,我不明白为什么我得到它而不是我期望的类型。
如何使用此对象,以便我的output
成为有效的字符串?