1

私のコンピューターには、以下のコード スニペットによって返される動作中のスマートカード リーダーがあります。

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

ただし、次のエラーが発生します。

エラー CS4036 ' IAsyncOperation<DeviceInformationCollection>' には ' ' の定義が含まれておらず、タイプ ' ' の最初の引数を受け入れるGetAwaiter拡張メソッド ' 'が見つかりませんでした (' ' の using ディレクティブがありませんか?)GetAwaiterIAsyncOperation<DeviceInformationCollection>System

コード スニペットは、Microsoft の C# サンプル コードからコピーしたものです。

このエラーを解決するにはどうすればよいですか?

4

1 に答える 1

4

エラーメッセージは、何が間違っているかについてかなり良いヒントを与えています. using System;ファイルの先頭にディレクティブを追加します。

今後の参考のために、問題の拡張メソッドを MSDN で検索することで、これを自分で追跡できます。たとえば、「IAsyncOperation GetAwaiter 拡張メソッド」を検索してください。これを行うと、最初のページはWindowsRuntimeSystemExtensions.GetAwaiter Method (IAsyncOperation)であり、そのページでは、メソッドがSystem名前空間にあり、System.Runtime.WindowsRuntime.dllアセンブリで定義されていることがわかります。using System;これら 2 つの情報を使用して、.cs ファイルにあること、およびSystem.Runtime.WindowsRuntime.dllプロジェクトにアセンブリ参照があることを再確認できます。

于 2016-07-14T02:53:11.383 に答える