IAsyncOperation<IReadOnlyList<UserNotification>>' 不包含 'GetAwaiter' 的定义
IAsyncOperation<IReadOnlyList<UserNotification>>' does not contain a definition for 'GetAwaiter'
我正在使用 Visual Studio 2017 Professional。
我一直在关注这个指南:
https://docs.microsoft.com/en-us/windows/uwp/design/shell/tiles-and-notifications/notification-listener
我的问题代码如下:
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using Windows.UI.Notifications;
using System;
namespace SeleniumWebChat.Utilities
{
// This class handles Windows 'Toast' notifications that pop up when a new webchat/call is received
static class WinNotificationHandler
{
static async Task<bool> TaskCheckWinNotification(string notifType, string guest)
{
Windows.UI.Notifications.Management.UserNotificationListener listener = Windows.UI.Notifications.Management.UserNotificationListener.Current;
//only read notifications if we have access - this may need to be set in windows settings
if (listener.GetAccessStatus().ToString() == "Allowed")
{
// Get the windows toast notifications as a list
IReadOnlyList<UserNotification> notifs = await listener.GetNotificationsAsync(NotificationKinds.Toast);
//Console.Error.WriteLine("number of notifications found: " + notifs.Count());
}
return false;
}
}
}
这一行有问题:
IReadOnlyList<UserNotification> notifs = await listener.GetNotificationsAsync(NotificationKinds.Toast);
给出错误:
'IAsyncOperation<IReadOnlyList<UserNotification>>'
does not contain a definition for 'GetAwaiter' and no extension method 'GetAwaiter' accepting a first argument of type 'IAsyncOperation<IReadOnlyList<UserNotification>>'
could be found (are you missing a using directive for 'System'?)
我已经尝试了我能在网上找到的所有内容,包括添加对以下内容的引用:
- C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETCore\v4.5\System.Runtime.WindowsRuntime.dll
- C:\Program Files (x86)\Windows Kits\UnionMetadata\Facade\Windows.WinMD
要添加 NuGet 包:
- UwpDesktop
- Microsoft.NETCore.UniversalWindowsPlatform
重新安装 VS 并尝试不同版本的 SDK。
我真的不知道是什么导致了这个问题,我将非常感谢任何正确方向的指示。
您应该添加
using System.WindowsRuntimeSystemExtensions;
这来自 System.Runtime.WindowsRuntime 程序集并包含一个带有 GetAwaiter 扩展的 class。
我正在使用 Visual Studio 2017 Professional。
我一直在关注这个指南: https://docs.microsoft.com/en-us/windows/uwp/design/shell/tiles-and-notifications/notification-listener
我的问题代码如下:
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using Windows.UI.Notifications;
using System;
namespace SeleniumWebChat.Utilities
{
// This class handles Windows 'Toast' notifications that pop up when a new webchat/call is received
static class WinNotificationHandler
{
static async Task<bool> TaskCheckWinNotification(string notifType, string guest)
{
Windows.UI.Notifications.Management.UserNotificationListener listener = Windows.UI.Notifications.Management.UserNotificationListener.Current;
//only read notifications if we have access - this may need to be set in windows settings
if (listener.GetAccessStatus().ToString() == "Allowed")
{
// Get the windows toast notifications as a list
IReadOnlyList<UserNotification> notifs = await listener.GetNotificationsAsync(NotificationKinds.Toast);
//Console.Error.WriteLine("number of notifications found: " + notifs.Count());
}
return false;
}
}
}
这一行有问题:
IReadOnlyList<UserNotification> notifs = await listener.GetNotificationsAsync(NotificationKinds.Toast);
给出错误:
'IAsyncOperation<IReadOnlyList<UserNotification>>'
does not contain a definition for 'GetAwaiter' and no extension method 'GetAwaiter' accepting a first argument of type'IAsyncOperation<IReadOnlyList<UserNotification>>'
could be found (are you missing a using directive for 'System'?)
我已经尝试了我能在网上找到的所有内容,包括添加对以下内容的引用:
- C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETCore\v4.5\System.Runtime.WindowsRuntime.dll
- C:\Program Files (x86)\Windows Kits\UnionMetadata\Facade\Windows.WinMD
要添加 NuGet 包:
- UwpDesktop
- Microsoft.NETCore.UniversalWindowsPlatform
重新安装 VS 并尝试不同版本的 SDK。
我真的不知道是什么导致了这个问题,我将非常感谢任何正确方向的指示。
您应该添加
using System.WindowsRuntimeSystemExtensions;
这来自 System.Runtime.WindowsRuntime 程序集并包含一个带有 GetAwaiter 扩展的 class。