我有一个windows商店应用程序。我有一个包含数据的XML文件。我需要将此文件添加为我的应用程序的资源。我需要从这个文件中读取数据到XDocument。
1) 当将XML文件添加到项目中时,我应该设置什么生成操作?(我认为这是"内容")
2) 如何从该XML文件中获取XDocument对象?
2小时后,我得到了这个代码:
public static class DataLoader {
public static XDocument LoadFromXmlResource(string path){
path.Replace('\', '/');
path.TrimEnd('/');
string uriPath = "ms-appx:///MyApp/" + path;
Task<StorageFile> operation = StorageFile.GetFileFromApplicationUriAsync(new Uri(uriPath)).AsTask<StorageFile>();
StorageFile file = operation.Result;
Task<string> fileReadingTask = FileIO.ReadTextAsync(file).AsTask<string>();
string fileContent = fileReadingTask.Result;
XDocument result = XDocument.Parse(fileContent, LoadOptions.None);
return result;
}
}
这是有效的,但我不相信它是正确的。
这是引用应用程序中内容的正确方法。您还可以通过ResourceLoader将.resw文件添加到项目中,以存储在运行时加载的资源。
资源不同,因为它们被设计为对文化敏感,所以它们适合翻译按钮文本值等。
如果您不需要此功能,那么添加了构建操作"内容"的资产是完美的,您可以使用ms-appx或ms-appdata URI方案来解决这些问题。
通过ms-appx 的包内容
http://msdn.microsoft.com/en-us/library/windows/apps/Hh781215.aspx
通过ms-appdata 的可变数据
http://msdn.microsoft.com/en-us/library/windows/apps/hh464917.aspx
-和-
http://msdn.microsoft.com/en-us/library/windows/apps/Hh781229.aspx
我没有其他办法了。你可以试着找到另一个。