我的Windows 8应用程序中有一些数据应该随附,并且只是一些静态数据.实际上:它是一个简单的xml文件,应该反序列化.
数据保存在Assets\data.xml中(资产是空白应用程序模板中的默认文件夹).
我正在使用这段代码来访问它:
private static async Task<MyObject> Load()
{
if (Windows.ApplicationModel.DesignMode.DesignModeEnabled)
{
return new SampleData();
}
var uri = new Uri("ms-appx:///Assets/data.xml");
Debug.WriteLine("Getting file from Application");
var file = await StorageFile.GetFileFromApplicationUriAsync(uri);
Debug.WriteLine("Opening file for reading async");
var stream = await file.OpenStreamForReadAsync();
var serializer = new XmlSerializer(typeof(MyObject));
Debug.WriteLine("Begin deserialization");
var result = (MyObject)serializer.Deserialize(stream.AsInputStream().AsStreamForRead());
return result;
}
Run Code Online (Sandbox Code Playgroud)
通话方式:
public static MyObject GetMyObject()
{
if (_myObject == null)
{
_myObject = Load().Result;
}
return _myObject;
}
Run Code Online (Sandbox Code Playgroud)
关于这个的"有趣"部分是:
如果我设置一个断点var uri = new Uri(...); …