public static ReadPrimitive ( Stream stream, System.DateTime &value ) : void | ||
stream | Stream | |
value | System.DateTime | |
return | void |
public object Deserialize(Serializer serializer, Type staticType, Stream stream) { bool result; Primitives.ReadPrimitive(stream, out result); return(result); }
public object Deserialize(Serializer serializer, Type staticType, Stream stream) { uint lengthField; Primitives.ReadPrimitive(stream, out lengthField); if (lengthField == 0) { return(null); } else { int length = (int)lengthField - 1; Type[] genericArguments = staticType.GetGenericArguments(); Type elementType = genericArguments[0]; TypeData elementTypeData = serializer.GetTypeData(elementType); ConstructorInfo listConstructor = GetConstructorForType(staticType); IList result = (IList)listConstructor.Invoke(new object[] { length }); for (int i = 0; i < length; i++) { object element = elementTypeData.TypeSerializer.Deserialize(serializer, elementType, stream); result.Add(element); } return(result); } }
public object Deserialize(Serializer serializer, Type staticType, Stream stream) { uint id; Primitives.ReadPrimitive(stream, out id); if (id == 0) { return(null); } if (id == Serializer.ObjectTypeId) { return(new object()); } TypeData typeData = serializer.GetTypeDataById(id); Type type = typeData.Type; object result = GetConstructorForType(type).Invoke(new object[0]); var fields = Helpers.GetFieldInfos(type); foreach (FieldInfo fieldInfo in fields) { Type fieldType = fieldInfo.FieldType; TypeData subTypeData = serializer.GetTypeData(fieldType); object value = subTypeData.TypeSerializer.Deserialize(serializer, fieldType, stream); fieldInfo.SetValue(result, value); } return(result); }
public object Deserialize(Serializer serializer, Type staticType, Stream stream) { uint lengthField; Primitives.ReadPrimitive(stream, out lengthField); if (lengthField == 0) { return(null); } else { int length = (int)lengthField - 1; Type[] genericArguments = staticType.GetGenericArguments(); Type keyType = genericArguments[0]; Type valueType = genericArguments[1]; TypeData keyTypeData = serializer.GetTypeData(keyType); TypeData valueTypeData = serializer.GetTypeData(valueType); ConstructorInfo dictionaryConstructor = GetConstructorForType(staticType); IDictionary result = (IDictionary)dictionaryConstructor.Invoke(new object[] { length }); for (int i = 0; i < length; i++) { object key = keyTypeData.TypeSerializer.Deserialize(serializer, keyType, stream); object value = valueTypeData.TypeSerializer.Deserialize(serializer, valueType, stream); result.Add(key, value); } return(result); } }
static void Deserialize(Serializer serializer, Stream stream, out object ob) { ushort id; Primitives.ReadPrimitive(stream, out id); if (id == 0) { ob = null; return; } serializer.m_deserializerTrampolines[id](serializer, stream, out ob); }
public static void Deserialize(Serializer serializer, Stream stream, out object ob) { uint id; Primitives.ReadPrimitive(stream, out id); if (id == 0) { ob = null; return; } var del = serializer.GetDeserializeTrampolineFromId(id); del(serializer, stream, out ob); }
public object Deserialize(Serializer serializer, Type staticType, Stream stream) { uint lengthField; Primitives.ReadPrimitive(stream, out lengthField); if (lengthField == 0) { return(null); } else { uint length = lengthField - 1; Type elementType = staticType.GetElementType(); IStaticTypeSerializer typeSerializer = serializer.GetTypeData(elementType).TypeSerializer; var array = Array.CreateInstance(elementType, length); for (int i = 0; i < length; i++) { array.SetValue(typeSerializer.Deserialize(serializer, elementType, stream), i); } return(array); } }
public object Deserialize(Serializer serializer, Type staticType, Stream stream) { uint len; Primitives.ReadPrimitive(stream, out len); if (len == 0) { return(null); } else if (len == 1) { return(string.Empty);; } uint totalChars; Primitives.ReadPrimitive(stream, out totalChars); len -= 1; var buf = new byte[len]; int l = 0; while (l < len) { int r = stream.Read(buf, l, (int)len - l); if (r == 0) { throw new EndOfStreamException(); } l += r; } return(encoding.GetString(buf)); }
public static void Deserialize(Serializer serializer, Stream stream, out object ob) { uint id; Primitives.ReadPrimitive(stream, out id); if (id == 0) { ob = null; return; } if (id == Serializer.ObjectTypeId) { ob = new object(); return; } serializer.Settings.BeforeDeserializingObjectWithTypeId?.Invoke(id); var del = serializer.GetDeserializeTrampolineFromId(id); del(serializer, stream, out ob); }