Пример #1
0
        public override void Deserialize(Stream input, ParseSchema.Column column, XmlWriter output)
        {
            var flags = ColumnFlags.None;

            flags |= column.Flags & ColumnFlags.FIXED_ARRAY;
            flags |= column.Flags & ColumnFlags.EARRAY;
            flags |= column.Flags & ColumnFlags.INDIRECT;

            if (flags == ColumnFlags.INDIRECT)
            {
                var hasValue = input.ReadValueU32();
                if (hasValue == 0)
                {
                    return;
                }
            }

            var index  = input.ReadValueS32();
            var target = column.Subtable.Columns[index];

            output.WriteStartElement("polymorph");
            output.WriteAttributeString("name", target.Name);

            BlobFile.DeserializeColumn(target, input, output);

            output.WriteEndElement();
        }