using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Xml.Serialization; using Windows.Storage; namespace List.Model { public class XmlIO { public static async Task<T> ReadObjectFromXmlFileAsync<T>(string filePath) { // this reads XML content from a file ("filePath") and returns an object from the XML T objectFromXml = default(T); var serializer = new XmlSerializer(typeof(T)); StorageFile file = await StorageFile.GetFileFromApplicationUriAsync(new Uri(filePath)); Stream stream = await file.OpenStreamForReadAsync(); objectFromXml = (T)serializer.Deserialize(stream); stream.Dispose(); return objectFromXml; } public static async Task SaveObjectToXml<T>(T objectToSave, string fileName) { // stores an object in XML format in file called 'filename', in App local folder var serializer = new XmlSerializer(typeof(T)); StorageFile file = await ApplicationData.Current.LocalFolder.CreateFileAsync(fileName, CreationCollisionOption.ReplaceExisting); Stream stream = await file.OpenStreamForWriteAsync(); using (stream) { serializer.Serialize(stream, objectToSave); } } } }