Ejemplo n.º 1
0
        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();
            }
        }
Ejemplo n.º 2
0
        public static T Open <T>(string filePath, bool useBinary) where T : class, new()
        {
            var loadedObject = default(T);

            using (var stream = PlatformFileAccess.GetOpenFileStream(filePath))
            {
                using (var reader = (useBinary ? XmlDictionaryReader.CreateBinaryReader(stream, XmlDictionaryReaderQuotas.Max) : XmlReader.Create(stream)))
                {
                    if (stream.Length > 0)
                    {
                        var serializer = new DataContractSerializer(typeof(T));

                        loadedObject = (T)serializer.ReadObject(reader);
                    }
                }

                stream.Close();
            }

            return(loadedObject ?? new T());
        }