我正在使用Lucene OR search using Boolean Query记录的SendRequestAsync()
,更具体地说是here记录的请求代码16
,来在我的应用程序中显示评论对话框。
我的代码本质上就是示例之一,并且可以在我的系统上正常工作。
从文档中说
SendRequestAsync方法仅适用于以Windows 10 1607版或更高版本为目标的应用程序。 Windows 10版本1607之后的发行版仅支持此方法支持的某些请求。
并且没有关于请求代码16
的信息似乎表明它需要晚于1607
的构建。
我现在的目标是通过ApiInformation
添加支票,以仅从受支持的Windows 10版本中使用此方法,否则使用here来启动Store应用。
我尝试了以下方法
if(ApiInformation.IsMethodPresent(nameof(StoreRequestHelper), nameof(StoreRequestHelper.SendRequestAsync)))
{
//use StoreRequestHelper.SendRequestAsync()
}
else
{
//Launcher.LaunchUriAsync()
}
但是,即使在我的系统上(即使是最新版本的系统),该支票也返回false。如果取消了支票,则可以打开对话框。
检查此API的正确方法是什么?
答案 0 :(得分:0)
问题产生的原因与我获取类名称的方式有关,该类需要具有完整的名称空间路径。实际上nameof
仅返回类的名称:
nameof(StoreRequestHelper) -> "StoreRequestHelper"
。为了获得正确的名称,我使用了typeof(StoreRequestHelper).FullName
。
工作代码如下:
if(ApiInformation.IsMethodPresent(typeof(StoreRequestHelper).FullName, nameof(StoreRequestHelper.SendRequestAsync), 3))
{
//use StoreRequestHelper.SendRequestAsync()
}
else
{
//Launcher.LaunchUriAsync()
}