internal static MetadataHeader FromReadingContext(ReadingContext context)
{
var reader = context.Reader;
var header = new MetadataHeader
{
StartOffset = reader.Position,
Signature = reader.ReadUInt32(),
MajorVersion = reader.ReadUInt16(),
MinorVersion = reader.ReadUInt16(),
Reserved = reader.ReadUInt32(),
VersionLength = reader.ReadUInt32(),
};
header.VersionString = Encoding.ASCII.GetString(reader.ReadBytes((int)header.VersionLength));
header.Flags = reader.ReadUInt16();
var streamCount = reader.ReadUInt16();
for (int i = 0; i < streamCount; i++)
{
var streamHeader = MetadataStreamHeader.FromReadingContext(context);
header.StreamHeaders.Add(streamHeader);
}
return(header);
}