public Encoder(Binary codec, BinaryWriter writer, Datamodel dm, int version) { EncodingVersion = version; Writer = writer; Datamodel = dm; StringDict = new StringDictionary(version, writer, dm); ElementIndices = new Dictionary<Element, int>(); ElementOrder = new List<Element>(); }
/// <summary> /// Constructs a new <see cref="StringDictionary"/> from a Binary stream. /// </summary> public StringDictionary(Binary codec, BinaryReader reader) { Codec = codec; EncodingVersion = codec.EncodingVersion; Dummy = EncodingVersion == 1; if (!Dummy) { foreach (var i in Enumerable.Range(0, LengthSize == sizeof(short) ? Codec.Reader.ReadInt16() : Codec.Reader.ReadInt32())) Strings.Add(Codec.ReadString_Raw()); } }