我有以下代码:
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系列之间是不同的.适合修补,因为只需要将相对少量的数据移动到客户端.这里还需要常见的界面.
因此,你必须找到答案的基本问题是:不是如何处理多样性,而是一旦你发现你需要做一些与预期不同的事情,你应该做些什么.从那里你可以理解你将要处理的最可靠的方式.