我正在构建一个需要检测插入和移除可移动设备的物联网应用程序。尝试创建DeviceWatcher对象时出现以下错误。
DeviceWatcher.CreateWatcher()
方法的类型为DeviceWatcher
。为什么我会收到此错误?
我不确定问题是什么,我不知道如何解决这个问题。谁能在这里提供见解?
DeviceWatcher watcher = DeviceInformation.CreateWatcher(DeviceClass.PortableStorageDevice);
错误:
无法将类型'Windows.Devices.Enumeration.DeviceWatcher'隐式转换为'NamespaceName.DeviceWatcher'
申请类型:
Windows 10后台应用程序。周年纪念版。
清单功能:
可移动存储
答案 0 :(得分:1)
尝试隐式变量声明:
var watcher = DeviceInformation.CreateWatcher(DeviceClass.PortableStorageDevice);
通过隐式声明,您实际上是让编译器执行其魔法(智能猜测)并派生变量的类型,根据右侧返回的数据类型进行声明。基本上你的错误是假设watcher
变量应该是DeviceWatcher
类型,但它不是。至少不是你输入的那个。在您的using
语句中可能存在冲突,DeviceWatcher
默认为Windows.Devices.Enumeration.DeviceWatcher
以外的DeviceInformation.CreateWatcher()
<{1}}
答案 1 :(得分:1)
使用var
是一种选择。您还可以明确指定命名空间:
Windows.Devices.Enumeration.DeviceWatcher watcher = DeviceInformation.CreateWatcher(DeviceClass.PortableStorageDevice);