Protogame.ModelSerializerGeneric.Deserialize C# (CSharp) Méthode

Deserialize() public méthode

Deserialize the specified byte array into a concrete Model implementation.
public Deserialize ( string name, byte data ) : Model
name string
data byte /// The byte array to deserialize. ///
Résultat Model
        public Model Deserialize(string name, byte[] data)
        {
            using (var memory = new MemoryStream(data))
            {
                using (var reader = new BinaryReader(memory))
                {
                    // The first version of the model format didn't have a version number; instead
                    // the first read value in that format is the number of animations.  So we use a 
                    // very large number that would never be a real number of animations to indicate
                    // that the format is now versioned.
                    if (reader.ReadInt32() == Int32.MaxValue)
                    {
                        var version = reader.ReadInt32();
                        switch (version)
                        {
                            case 2:
                                return _modelSerializerVersion2.Deserialize(name, data);
                            case 3:
                                return _modelSerializerVersion3.Deserialize(name, data);
                            case 4:
                                return _modelSerializerVersion4.Deserialize(name, data);
                            default:
                                throw new InvalidOperationException("Unknown version for model format.");
                        }
                    }

                    // No version signature, so it must be version 1.
                    return _modelSerializerVersion1.Deserialize(name, data);
                }
            }
        }