winforms C# - UWP应用程序信息引发未实现异常

mcdcgff0  于 2022-11-16  发布在  C#
关注(0)|答案(2)|浏览(155)

我正在使用UWP API开发一个C# WinForms应用程序。我尝试通过编程读取通知,到目前为止我已经成功了。但是,每当我从UserNotification类调用AppInfo时,无论我从AppInfo读取什么属性,我都会得到NotImplementedException。
有人有什么建议吗?
我只能找到一个答案,这个问题,它不是很有用,也是几年前。这是一个主要路障在我的项目,任何帮助是非常感谢!
先谢谢你了。

编辑

这是我的密码

try {
            this.source = notification.AppInfo.DisplayInfo.DisplayName;
        } catch(NotImplementedException e) {
            this.source = "Unspecified";
        }

        NotificationBinding binding = notification.Notification.Visual.GetBinding(KnownNotificationBindings.ToastGeneric);
        if (binding != null) {
            Console.WriteLine(binding.GetTextElements()[1]);
            this.title = binding.GetTextElements().FirstOrDefault()?.Text;
            this.body = string.Join("\n", binding.GetTextElements().Skip(1).Select(t => t.Text));
        }
        Init();

我使用的代码来自the examples in the docs.

ukdjmx9f

ukdjmx9f1#

UWP应用程序信息引发未实现异常
根据例外状况消息,似乎尚未针对WinForm平台实作notification.AppInfo.DisplayInfo。对于此案例,我们有一个解决方法,可使用[AppDiagnosticInfo][1] api取得AppInfo。请指涉下列程式码

var list = await AppDiagnosticInfo.RequestInfoAsync();
var currentPackage = list.Where(o => o.AppInfo.PackageFamilyName == Package.Current.Id.FamilyName).FirstOrDefault();
if (currentPackage != null)
{
    AppInfo currentAppInfo = currentPackage.AppInfo;
    var display = currentAppInfo.DisplayInfo;
}
gywdnpxw

gywdnpxw2#

private async Task<AppDisplayInfo> GetDisplayInfo()
    {
        var list = await AppDiagnosticInfo.RequestInfoAsync();
        
        var currentPackage = list.FirstOrDefault(o => o.AppInfo.PackageFamilyName == Package.Current.Id.FamilyName);
        if (currentPackage != null)
        {
            var currentAppInfo = currentPackage.AppInfo;
            var display = currentAppInfo.DisplayInfo;

            return display;
        }

        return null;
    }

相关问题