缺少System.Devices库和构造AQS字符串时遇到问题

时间:2019-02-14 13:24:19

标签: c# uwp

我想要实现的是扫描我的地方网络以查找连接的设备。我了解到我需要构造一个选择器并将其传递给函数

DeviceInformation.FindAllAsync()

例如。但是问题是,所有这些都需要使用System.Devices命名空间,例如

System.Devices.InterfaceClassGuid:="{2eef81be-33fa-4800-9670-1cd474972c3f}"

我收到这样的错误:“错误CS0234类型或名称空间名称'Devices'在名称空间'System'中不存在(您是否缺少程序集引用?)。

我怀疑这是因为我以某种方式缺少图书馆。我试过了     使用System.Devices 但同样,名称空间中不存在名称空间。我也尝试过在参考管理器中添加它,但是也没有这样的库。 我找不到在线图书馆。

我也不完全确定如何构造AQS字符串。

DeviceInformationCollection collection = await DeviceInformation.FindAllAsync(DeviceClass.ImageScanner);

可以,但是仅显示本地设备。

var selector = System.Device.Aep.ProtocolId:= "{37aba761-2124-454c-8d82-c42962c2de2b}";

这会产生错误,其中一个错误是带有名称空间,并且具有更多语法约束。

我希望将选择器传递给该函数,但缺少名称空间System.Devices和AQS字符串不起作用。

2 个答案:

答案 0 :(得分:0)

  

似乎这不是名称空间。它们是Windows属性,请检查Windows属性。

System.Devices不是名称空间。它们是Device information properties。如果要枚举设备,则需要使用DeviceWatcher来捕获符合条件的设备。

DeviceWatcher deviceWatcher = DeviceInformation.CreateWatcher(
        "", // AQS Filter string
        null, // requested properties
        deviceInfoKind);

这是您可以参考的official code sample

答案 1 :(得分:0)

“DeviceWatcher”听起来很棒——它说:

“构建示例

Start Visual Studio and select File > Open > Project/Solution.
Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio Solution (.sln) file.
Select the appropriate target: x86, x64, ARM. Press Ctrl+Shift+B, or select Build > Build Solution.

啊,但问题来了:

“找不到类型或命名空间‘系统’。”

它提供“使用系统”;在所有标题行中,它要求“使用 Windows;”并拒绝所有其他人。

去图——