Protogame.LocalCompiledLoadStrategy.AttemptLoadOfFile C# (CSharp) Méthode

AttemptLoadOfFile() private méthode

The attempt load of file.
///
private AttemptLoadOfFile ( FileInfo file, string name ) : IRawAsset
file System.IO.FileInfo /// The file. ///
name string /// The name. ///
Résultat IRawAsset
        private IRawAsset AttemptLoadOfFile(FileInfo file, string name)
        {
            if (file.Exists)
            {
                using (var stream = new FileStream(file.FullName, FileMode.Open, FileAccess.Read, FileShare.Read))
                {
                    using (var reader = new BinaryReader(stream))
                    {
                        switch (reader.ReadByte())
                        {
                            case CompiledAsset.FORMAT_LZMA_COMPRESSED:
                                using (var memory = new MemoryStream())
                                {
                                    LzmaHelper.Decompress(reader.BaseStream, memory);
                                    memory.Seek(0, SeekOrigin.Begin);
                                    var serializer = new CompiledAssetSerializer();
                                    var result = (CompiledAsset)serializer.Deserialize(memory, null, typeof(CompiledAsset));
                                    return result;
                                }
                            case CompiledAsset.FORMAT_UNCOMPRESSED:
                                var ucserializer = new CompiledAssetSerializer();
                                var ucresult = (CompiledAsset)ucserializer.Deserialize(reader.BaseStream, null, typeof(CompiledAsset));
                                return ucresult;
                            default:
                                throw new InvalidDataException();
                        }
                    }
                }
            }

            return null;
        }