public sealed override void Write(BitStream stream, ref TOwner obj, MySerializeInfo info) { try { #if !XB1 // XB1_SYNC_SERIALIZER_NOEMIT TMember value; m_getter(ref obj, out value); MySerializationHelpers.Write <TMember>(stream, ref value, m_serializer, info ?? m_info); #else // XB1 System.Diagnostics.Debug.Assert(false, "TODO for XB1."); #endif // XB1 } catch (MySerializeException e) { string err; switch (e.Error) { case MySerializeErrorEnum.DynamicNotAllowed: err = String.Format("Error serializing {0}.{1}, member contains inherited type, but it's not allowed, consider adding attribute [Serialize(MyObjectFlags.Dynamic)]", m_memberInfo.DeclaringType.Name, m_memberInfo.Name); break; case MySerializeErrorEnum.NullNotAllowed: err = String.Format("Error serializing {0}.{1}, member contains null, but it's not allowed, consider adding attribute [Serialize(MyObjectFlags.Nullable)]", m_memberInfo.DeclaringType.Name, m_memberInfo.Name); break; default: err = "Unknown serialization error"; break; } //Debug.WriteLine(err); throw new InvalidOperationException(err, e); } }
public override void Write(Library.Collections.BitStream stream, ref TItem[] value, MySerializeInfo info) { stream.WriteVariant((uint)value.Length); for (int i = 0; i < value.Length; i++) { MySerializationHelpers.Write <TItem>(stream, ref value[i], m_itemSerializer, info.ItemInfo ?? MySerializeInfo.Default); } }
public sealed override void Read(BitStream stream, ref TOwner obj, MySerializeInfo info) { TMember result; if (MySerializationHelpers.CreateAndRead <TMember>(stream, out result, m_serializer, info ?? m_info)) { m_setter(ref obj, ref result); } }
public override void Read(Library.Collections.BitStream stream, out TItem[] value, MySerializeInfo info) { int num = (int)stream.ReadUInt32Variant(); value = new TItem[num]; for (int i = 0; i < value.Length; i++) { MySerializationHelpers.CreateAndRead <TItem>(stream, out value[i], m_itemSerializer, info.ItemInfo ?? MySerializeInfo.Default); } }
public override void Write(BitStream stream, ref HashSet <TItem> value, MySerializeInfo info) { TItem item; int num = value.Count; stream.WriteVariant((uint)num); foreach (var obj in value) { item = obj; MySerializationHelpers.Write <TItem>(stream, ref item, m_itemSerializer, info.ItemInfo ?? MySerializeInfo.Default); } }
public override void Read(BitStream stream, out HashSet <TItem> value, MySerializeInfo info) { TItem item; int num = (int)stream.ReadUInt32Variant(); value = new HashSet <TItem>(); for (int i = 0; i < num; i++) { MySerializationHelpers.CreateAndRead <TItem>(stream, out item, m_itemSerializer, info.ItemInfo ?? MySerializeInfo.Default); value.Add(item); } }
public override void Write(BitStream stream, ref List <TItem> value, MySerializeInfo info) { TItem item; int num = value.Count; stream.WriteVariant((uint)num); for (int i = 0; i < num; i++) { item = value[i]; MySerializationHelpers.Write <TItem>(stream, ref item, m_itemSerializer, info.ItemInfo ?? MySerializeInfo.Default); } }
public sealed override void Read(BitStream stream, ref TOwner obj, MySerializeInfo info) { TMember result; if (MySerializationHelpers.CreateAndRead <TMember>(stream, out result, m_serializer, info ?? m_info)) { #if !XB1 // XB1_SYNC_SERIALIZER_NOEMIT m_setter(ref obj, ref result); #else // XB1 System.Diagnostics.Debug.Assert(false, "TODO for XB1."); #endif // XB1 } }
public override void Read(BitStream stream, out Dictionary <TKey, TValue> obj, MySerializeInfo info) { TKey key; TValue value; int num = (int)stream.ReadUInt32Variant(); obj = new Dictionary <TKey, TValue>(num); for (int i = 0; i < num; i++) { MySerializationHelpers.CreateAndRead(stream, out key, m_keySerializer, info.KeyInfo ?? MySerializeInfo.Default); MySerializationHelpers.CreateAndRead(stream, out value, m_valueSerializer, info.ItemInfo ?? MySerializeInfo.Default); obj.Add(key, value); } }
public override void Write(BitStream stream, ref Dictionary <TKey, TValue> obj, MySerializeInfo info) { TKey key; TValue value; int num = obj.Count; stream.WriteVariant((uint)num); foreach (var item in obj) { key = item.Key; value = item.Value; MySerializationHelpers.Write(stream, ref key, m_keySerializer, info.KeyInfo ?? MySerializeInfo.Default); MySerializationHelpers.Write(stream, ref value, m_valueSerializer, info.ItemInfo ?? MySerializeInfo.Default); } }
public static void Write <T>(BitStream stream, ref T value, MySerializeInfo serializeInfo = null) { MySerializationHelpers.Write(stream, ref value, MyFactory.GetSerializer <T>(), serializeInfo ?? MySerializeInfo.Default); }
public static void CreateAndRead <T>(BitStream stream, out T value, MySerializeInfo serializeInfo = null) { MySerializationHelpers.CreateAndRead(stream, out value, MyFactory.GetSerializer <T>(), serializeInfo ?? MySerializeInfo.Default); }