/// <inheritdoc/> public override void Serialize(ref Xenko.Core.Collections.SortedList <TKey, TValue> obj, ArchiveMode mode, SerializationStream stream) { if (mode == ArchiveMode.Deserialize) { // Should be null if it was var count = stream.ReadInt32(); for (var i = 0; i < count; ++i) { var key = default(TKey); var value = default(TValue); keySerializer.Serialize(ref key, mode, stream); valueSerializer.Serialize(ref value, mode, stream); obj.Add(key, value); } } else if (mode == ArchiveMode.Serialize) { stream.Write(obj.Count); foreach (var item in obj) { keySerializer.Serialize(item.Key, stream); valueSerializer.Serialize(item.Value, stream); } } }
/// <inheritdoc/> public override void PreSerialize(ref Xenko.Core.Collections.SortedList <TKey, TValue> obj, ArchiveMode mode, SerializationStream stream) { if (mode == ArchiveMode.Deserialize) { // TODO: Peek the SortedList size if (obj == null) { obj = new Xenko.Core.Collections.SortedList <TKey, TValue>(); } else { obj.Clear(); } } }