2015-12-31 4 views
7

ich den folgenden Code haben, die eine Datei-Picker in einer Anwendung zeigt:'Windows.Storage.StorageFile Datei = erwarten FilePicker.PickSingleFileAsync()' nicht funktioniert

var FilePicker = new Windows.Storage.Pickers.FileOpenPicker(); 
FilePicker.ViewMode = Windows.Storage.Pickers.PickerViewMode.Thumbnail; 
FilePicker.SuggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.ComputerFolder; 
FilePicker.FileTypeFilter.Add(".pcs"); 
FilePicker.FileTypeFilter.Add(".pcp"); 

Windows.Storage.StorageFile File = await FilePicker.PickSingleFileAsync(); 

jedoch Windows.Storage.StorageFile File = await FilePicker.PickSingleFileAsync() Ursachen dieser Fehler während der Kompilierung:

Fehler CS4036 'IAsyncOperation < StorageFile>' enthält keine Definition für 'GetAwaiter' und keine Erweiterungsmethode 'GetAwaiter' ein erstes Argument vom Typ akzeptieren ‚IAsyncOperation < StorageFile>‘ konnte gefunden werden (möglicherweise fehlt eine using-Direktive für 'System'?)

Warum ist das passiert? Ich habe den Code von MSDN bekommen. Könnte mir bitte jemand helfen?

Hinweis: Ich programmiere für Universal Windows.

+2

Haben Sie die using-Direktive für System, wie es anzeigt? –

+0

Wenn Sie auch in 'using' Direktiven viele Fehler bekommen, dann versuchen Sie [diesen Beitrag] (http://stackoverflow.com/a/34197683/2681948) zu folgen - aus unbekannten Gründen für einige Projekte müssen Sie das nuget Paket lesen . – Romasz

Antwort

23

Sie vermissen die offensichtliche Referenz auf System in Ihren Anwendungen.

using System; 

Warum brauchen Sie diese Referenz und warum beschwert es sich eine scheinbar unbenutzte Methode fehlt?

Mit await, ruft sie tatsächlich WindowsRuntimeSystemExtensions.GetAwaiter, eine Erweiterungsmethode über IAsyncOperation (um die TaskAwaiter zu bekommen zu erwarten). Da sich WindowsRuntimeSystemExtensions im Namespace System befindet, benötigen Sie using, um die Erweiterungsmethode zu erhalten.

+0

Ich hoffe, die 'IntelliSense' könnte viel intelligenter sein und einen sehr einfachen Fehler entdecken – mr5