2016-07-14 144 views
0

我的電腦應該由下面的代碼片段返回工作的智能卡讀寫器:如何使用await語法從Windows.Devices.Enumeration.DeviceInformation.FindAllAsync中讀取結果?

string selector = Windows.Devices.SmartCards.SmartCardReader.GetDeviceSelector(); 
Windows.Devices.Enumeration.DeviceInformationCollection devices = await Windows.Devices.Enumeration.DeviceInformation.FindAllAsync(selector); 

不過,我得到這個錯誤:

Error CS4036 ' IAsyncOperation<DeviceInformationCollection> ' does not contain a definition for ' GetAwaiter ' and no extension method ' GetAwaiter ' accepting a first argument of type ' IAsyncOperation<DeviceInformationCollection> ' could be found (are you missing a using directive for ' System '?)

的代碼片段從Microsoft's C# Sample Code

複製

我能做些什麼來解決這個錯誤?

回答

3

錯誤消息給你一個關於錯誤的很好的暗示。將using System;指令添加到文件的頂部。

爲了將來的參考,您可以通過搜索有關擴展方法的MSDN(例如,搜索「IAsyncOperation GetAwaiter擴展方法」。當我這樣做時,第一頁是WindowsRuntimeSystemExtensions.GetAwaiter Method (IAsyncOperation),在該頁面上,您可以看到該方法位於System名稱空間中,並在System.Runtime.WindowsRuntime.dll程序集中定義。通過這兩部分信息,您可以仔細檢查以確保您的.cs文件中包含using System;,並且您在項目中擁有System.Runtime.WindowsRuntime.dll程序集引用。