Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 以编程方式标识Windows应用商店应用程序中的文件类型关联?_C#_Configuration_Microsoft Metro_Windows Store Apps_File Type - Fatal编程技术网

C# 以编程方式标识Windows应用商店应用程序中的文件类型关联?

C# 以编程方式标识Windows应用商店应用程序中的文件类型关联?,c#,configuration,microsoft-metro,windows-store-apps,file-type,C#,Configuration,Microsoft Metro,Windows Store Apps,File Type,Windows或.NET中是否支持Windows应用商店应用程序API:s,允许我列出为正在执行的应用程序定义的文件类型关联 在我的场景中,我有一个Windows应用商店类库,我打算从各种Windows应用商店应用程序中引用它。理想情况下,我希望能够在类库方法中读取应用程序定义的文件类型关联。这可能吗?到目前为止,似乎没有内置的方式来访问Windows应用商店应用程序的文件类型关联,但由于博客文章,我已经能够实现一种解决方法 显然,Package.appxmanifest文件已转换为与部署的应用

Windows或.NET中是否支持Windows应用商店应用程序API:s,允许我列出为正在执行的应用程序定义的文件类型关联


在我的场景中,我有一个Windows应用商店类库,我打算从各种Windows应用商店应用程序中引用它。理想情况下,我希望能够在类库方法中读取应用程序定义的文件类型关联。这可能吗?

到目前为止,似乎没有内置的方式来访问Windows应用商店应用程序的文件类型关联,但由于博客文章,我已经能够实现一种解决方法

显然,Package.appxmanifest文件已转换为与部署的应用程序一起分发的appxmanifest.xml文件。清单文件包含应用程序的用户定义的文件类型关联,因此可以使用简单的XML查询来获取这些定义:

var document = XDocument.Load("AppxManifest.xml");
var xname = XNamespace.Get("http://schemas.microsoft.com/appx/2010/manifest");

var fileTypeElements = 
    document.Descendants(xname + "FileTypeAssociation").Descendants().Descendants();
var supportedFileExtensions = 
    fileTypeElements.Select(element => element.Value).ToArray();
这段代码当然可以进一步微调,例如FileTypeAssociation节点是应用程序节点的(深层)后代,同一清单文件中可以有多个应用程序节点。尽管如此,上述代码至少应该能够作为第一次尝试的方法