public Builder Add(string name, object value) { SerializerMetaData metaData = new SerializerMetaData( name, value.GetType()); ObjectData.Add(metaData, value); return(this); }
/// <summary> /// Reads the metadata generated from an /// <see cref="ISerializableGameObject"/>. /// </summary> private List <SerializerMetaData> ReadAllMetaData( BinaryReader reader, Dictionary <string, Type> expected) { var metaData = new List <SerializerMetaData>(); // Read count int count = reader.ReadInt32(); // Read data for (int i = 0; i < count; i++) { SerializerMetaData meta = ReadMetaData(reader, expected); metaData.Add(meta); } return(metaData); }
protected override SerializerMetaData ReadMetaData( BinaryReader reader, Dictionary <string, Type> expected) { string name = reader.ReadString(); if (!expected.ContainsKey(name)) { throw new ArgumentException("Save data loaded a value with an unexpected name"); } Type type = expected[name]; long position = reader.ReadInt64(); long length = reader.ReadInt64(); SerializerMetaData meta = new SerializerMetaData(name, type); meta = meta.SetPosition(position, length); return(meta); }
protected override void WriteMetaData(BinaryWriter writer, SerializerMetaData meta) { writer.Write(meta.Name); writer.Write(meta.Position); writer.Write(meta.Length); }
/// <summary> /// Writes one value's metadata. /// </summary> protected abstract void WriteMetaData(BinaryWriter writer, SerializerMetaData meta);