示例#1
0
        private static KaraokeSkin decode(string filename, out KaraokeSkin encoded)
        {
            using (var stream = TestResources.OpenSkinResource(filename))
                using (var sr = new LineBufferedReader(stream))
                {
                    // Read file and decode to file
                    var legacyDecoded = new KaraokeSkinDecoder().Decode(sr);

                    using (var ms = new MemoryStream())
                        using (var sw = new StreamWriter(ms))
                            using (var sr2 = new LineBufferedReader(ms))
                            {
                                // Then encode file to stream
                                var encodeResult = new KaraokeSkinEncoder().Encode(legacyDecoded);
                                sw.WriteLine(encodeResult);
                                sw.Flush();

                                ms.Position = 0;

                                // Decode result from stream
                                encoded = new KaraokeSkinDecoder().Decode(sr2);
                                return(legacyDecoded);
                            }
                }
        }
示例#2
0
 public string Encode(KaraokeSkin output) => output.Serialize();