Как прочитать результаты из Windows.Devices.Enumeration.DeviceInformation.FindAllAsync, используя синтаксис await?
На моем компьютере есть работающее устройство чтения смарт-карт, которое должно быть возвращено приведенным ниже фрагментом кода:
string selector = Windows.Devices.SmartCards.SmartCardReader.GetDeviceSelector();
Windows.Devices.Enumeration.DeviceInformationCollection devices = await Windows.Devices.Enumeration.DeviceInformation.FindAllAsync(selector);
Тем не менее, я получаю эту ошибку:
Ошибка CS4036 '
IAsyncOperation<DeviceInformationCollection>
"не содержит определения для"GetAwaiter
"и нет метода расширения"GetAwaiter
"принятие первого аргумента типа"IAsyncOperation<DeviceInformationCollection>
'может быть найдено (вы пропустили директиву использования для'System
?)
Фрагмент кода скопирован из образца кода Microsoft C#
Что я могу сделать, чтобы решить эту ошибку?
1 ответ
Сообщение об ошибке дает вам хороший совет о том, что не так. Добавить using System;
директива в верхней части вашего файла.
Для дальнейшего использования вы можете отследить это самостоятельно, выполнив поиск в MSDN для соответствующего метода расширения, например, поиск "метод расширения IAsyncOperation GetAwaiter". Когда я это делаю, первой страницей является метод WindowsRuntimeSystemExtensions.GetAwaiter (IAsyncOperation), и на этой странице вы видите, что метод находится в System
пространство имен, и определено в System.Runtime.WindowsRuntime.dll
сборка. С этими двумя частями информации вы можете перепроверить, чтобы убедиться, что у вас есть using System;
в вашем файле.cs, и что у вас есть System.Runtime.WindowsRuntime.dll
сборка ссылка в проекте.