TagTool.Serialization.ResourceSerializationContext.BeginDeserialize C# (CSharp) Method

BeginDeserialize() public method

public BeginDeserialize ( TagStructureInfo info ) : BinaryReader
info TagStructureInfo
return System.IO.BinaryReader
        public BinaryReader BeginDeserialize(TagStructureInfo info)
        {
            if (_resource.DefinitionAddress.Value == 0 || _resource.DefinitionAddress.Type != ResourceAddressType.Definition)
                throw new InvalidOperationException("Invalid resource definition address");

            // Create a stream with a copy of the resource definition data
            var stream = new MemoryStream(_resource.DefinitionData.Length);
            stream.Write(_resource.DefinitionData, 0, _resource.DefinitionData.Length);

            // Apply fixups
            var writer = new BinaryWriter(stream);
            foreach (var fixup in _resource.DefinitionFixups)
            {
                stream.Position = fixup.DefinitionDataOffset;
                writer.Write(fixup.Address.Value);
            }
            stream.Position = _resource.DefinitionAddress.Offset;
            return new BinaryReader(stream);
        }