3

我正在使用 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>>'不包含“GetAwaiter”的定义,并且找不到接受第一个类型参数的扩展方法“GetAwaiter” 'IAsyncOperation<IReadOnlyList<UserNotification>>'(您是否缺少“System”的 using 指令?)

我已经尝试了所有我可以在网上找到的东西,从添加对以下内容的引用:

  • C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETCore\v4.5\System.Runtime.WindowsRuntime.dll
  • C:\Program Files (x86)\Windows Kits\10\UnionMetadata\Facade\Windows.WinMD

添加 NuGet 包:

  • Uwp桌面
  • Microsoft.NETCore.UniversalWindowsPlatform

重新安装 VS 并尝试不同版本的 SDK。

我真的不知道是什么导致了这个问题,我将非常感谢任何正确方向的指示。

4

1 回答 1

4

你应该添加

 using System.WindowsRuntimeSystemExtensions;

这是来自 System.Runtime.WindowsRuntime 程序集并包含一个带有 GetAwaiter 扩展的类。

于 2019-02-04T17:36:21.240 回答