c# – 检查是否可以在调用api之前调用api中的方法

我有以下代码

var view = ApplicationView.GetForCurrentView();
var runtimeMethods = view.GetType().GetRuntimeMethods();
if (!view.IsFullScreen)
{
    var tryEnterFullScreenMode = runtimeMethods.FirstOrDefault(
        x => x.Name == "TryEnterFullScreenMode");
    tryEnterFullScreenMode?.Invoke(view,null);
}

这样做是因为我的应用程序变成全屏,但是如果我在Windows 8.1上我不能调用这些方法.在调用方法之前,如何首先检查此功能是否可用.我会使用#if …#endif吗?
基本上我只想在应用程序在可以访问它的计算机上运行时使用此代码(Windows 10操作系统).

解决方法

桌面开发不会受到Web开发所经历的碎片的影响,因此没有功能支持查询,而是库支持/ os版本.至少我也不知道.

通常做的是

1)根据您运行的OS系列版本动态加载程序集.为此,您需要一些通用的界面包装器,它可以在内部隐藏所有“真正的”API调用.

2)为每个不同的OS系列提供不同的版本.您需要支持2个代码库.但事件中,实际上不同的代码可能会移动到单独的程序集中,因此您只有一小组程序集,这些程序集在不同的OS系列之间是不同的.适合修补,因为只需要将相对少量的数据移动到客户端.这里还需要常见的界面.

因此,你必须找到答案的基本问题是:不是如何处理多样性,而是一旦你发现你需要做一些与预期不同的事情,你应该做些什么.从那里你可以理解你将要处理的最可靠的方式.

相关文章

目录简介使用JS互操作使用ClipLazor库创建项目使用方法简单测...
目录简介快速入门安装 NuGet 包实体类User数据库类DbFactory...
本文实现一个简单的配置类,原理比较简单,适用于一些小型项...
C#中Description特性主要用于枚举和属性,方法比较简单,记录...
[TOC] # 原理简介 本文参考[C#/WPF/WinForm/程序实现软件开机...
目录简介获取 HTML 文档解析 HTML 文档测试补充:使用 CSS 选...