public static void Save <T>(string filePath, T objectToSave, bool useBinary) { using (var stream = PlatformFileAccess.GetSaveFileStream(filePath)) { using (var writer = (useBinary ? XmlDictionaryWriter.CreateBinaryWriter(stream) : XmlWriter.Create(stream))) { var serializer = new DataContractSerializer(typeof(T)); serializer.WriteObject(writer, objectToSave); writer.Flush(); } stream.Close(); } }
public static async Task Save <T>(string filePath, T objectToSave, bool useBinary) { using (var outputStream = await PlatformFileAccess.GetSaveFileStream(filePath)) { using (var stream = outputStream.AsStreamForWrite()) { using (var writer = (useBinary ? XmlDictionaryWriter.CreateBinaryWriter(stream) : XmlWriter.Create(stream))) { var serializer = new DataContractSerializer( typeof(T), new DataContractSerializerSettings { PreserveObjectReferences = true }); serializer.WriteObject(writer, objectToSave); await stream.FlushAsync(); } } } }