コード例 #1
0
 public static Playlist DeserializeFrom(IInputStream stream)
 {
     try
     {
         return((Playlist)LibrarySerializer.Create().Deserialize(stream.AsStreamForRead(),
                                                                 null, typeof(Playlist)));
     }
     catch { return(null); }
 }
コード例 #2
0
        public async Task Serialize()
        {
            StorageFile file = await ApplicationData.Current.LocalFolder.CreateFileAsync("playlistcache", CreationCollisionOption.ReplaceExisting);

            using (Stream fileStream = await file.OpenStreamForWriteAsync())
            {
                LibrarySerializer.Create().Serialize(fileStream, this);
            }
        }
コード例 #3
0
ファイル: Helpers.cs プロジェクト: yongjan/Espera
        public static string GenerateSaveFile()
        {
            using (var stream = new MemoryStream())
            {
                LibrarySerializer.Serialize(new[] { LocalSong1, LocalSong2 }, new[] { Playlist1, Playlist2 }, SongSourcePath, stream);

                return(Encoding.UTF8.GetString(stream.ToArray()));
            }
        }
コード例 #4
0
            public void SmokeTest()
            {
                using (Stream targetStream = new MemoryStream())
                {
                    var songs = new[] { Helpers.LocalSong1, Helpers.LocalSong2 };

                    var playlists = new[] { Helpers.Playlist1, Helpers.Playlist2 };

                    LibrarySerializer.Serialize(songs, playlists, Helpers.SongSourcePath, targetStream);

                    string expected = Helpers.GenerateSaveFile();
                    string actual   = Helpers.StreamToString(targetStream).Replace("\r\n", String.Empty);

                    Assert.Equal(expected, actual);
                }
            }
コード例 #5
0
        private async Task Deserialize(StorageFile file)
        {
            if (file == null)
            {
                file = await ApplicationData.Current.LocalFolder.GetFileAsync("playlistcache");
            }

            using (IInputStream inStream = await file.OpenSequentialReadAsync())
            {
                var cache = (PlaylistManager)LibrarySerializer.Create().Deserialize(inStream.AsStreamForRead(),
                                                                                    null, typeof(PlaylistManager));
                if (cache != null)
                {
                    foreach (var playlist in cache.PlaylistDataMember)
                    {
                        await this.AddPlaylist(playlist);
                    }
                }
            }
        }
コード例 #6
0
        public async Task Serialize()
        {
            StorageFile file = await ApplicationData.Current.LocalFolder.CreateFileAsync("cache", CreationCollisionOption.ReplaceExisting);

            using (Stream fileStream = await file.OpenStreamForWriteAsync())
            {
                LibrarySerializer.Create().Serialize(fileStream, this);
                //Serializer.Serialize(fileStream, this);
            }

            /*using (MemoryStream ms = new MemoryStream())
             * {
             *  var _Serializer = new DataContractJsonSerializer(GetType());
             *  _Serializer.WriteObject(ms, this);
             *  ms.Position = 0;
             *
             *  StorageFile file = await ApplicationData.Current.LocalFolder.CreateFileAsync("cache", CreationCollisionOption.ReplaceExisting);
             *  using (Stream fileStream = await file.OpenStreamForWriteAsync())
             *  {
             *      await ms.CopyToAsync(fileStream);
             *      await fileStream.FlushAsync();
             *  }
             * }*/
        }
コード例 #7
0
        public async static Task <MusicLibraryCache> Deserialize(StorageFile file)
        {
            try
            {
                if (file == null)
                {
                    file = await ApplicationData.Current.LocalFolder.GetFileAsync("cache");
                }

                using (IInputStream inStream = await file.OpenSequentialReadAsync())
                {
                    return((MusicLibraryCache)LibrarySerializer.Create().Deserialize(inStream.AsStreamForRead(),
                                                                                     null, typeof(MusicLibraryCache)));
                }

                /*using (IInputStream inStream = await file.OpenSequentialReadAsync())
                 * {
                 *  var serializer = new DataContractJsonSerializer(typeof(MusicLibraryCache));
                 *  return (MusicLibraryCache)serializer.ReadObject(inStream.AsStreamForRead());
                 * }*/
            }
            catch { }
            return(new MusicLibraryCache());
        }
コード例 #8
0
 public void SerializeTo(Stream stream)
 {
     LibrarySerializer.Create().Serialize(stream, this);
 }
コード例 #9
0
 public LibraryIO(string filename, LibrarySerializer serializer, LibraryDeserializer deserializer)
 {
     this.filename     = filename;
     this.serializer   = serializer;
     this.deserializer = deserializer;
 }