public static bool CreateAndRead <TMember>(BitStream stream, out TMember result, MySerializer <TMember> serializer, MySerializeInfo info) { if (ReadNullable(stream, info.IsNullable)) { if (MySerializer <TMember> .IsClass && info.IsDynamic) { Type type = typeof(TMember); bool readType = true; if (info.IsDynamicDefault) { readType = stream.ReadBool(); } if (readType) { type = stream.ReadDynamicType(typeof(TMember), info.DynamicSerializer); } object value; MyFactory.GetSerializer(type).Read(stream, out value, info); result = (TMember)value; } else { serializer.Read(stream, out result, info); } return(true); } else { result = default(TMember); return(false); } }
public override void Read(Library.Collections.BitStream stream, out T?value, MySerializeInfo info) { if (stream.ReadBool()) { T val; m_serializer.Read(stream, out val, info); value = val; } else { value = null; } }