public override void Serialize(BinaryTypesWriter bw, Type type, SerializerSettings settings, ISerializerArg serializerArg, object value) { var typedSerializerArg = GetSerializerArg <DateTimeSerializerArg>(type, settings, serializerArg); if (typedSerializerArg != null && typedSerializerArg.TickResolution > 0) { bw.Write7BitLong(((TimeSpan)(object)value).Ticks / typedSerializerArg.TickResolution); return; } bw.Write7BitLong(((TimeSpan)(object)value).Ticks); }
public override void Serialize(BinaryTypesWriter bw, Type type, SerializerSettings settings, ISerializerArg serializerArg, object value) { IList list = value as IList; if (list == null) { bw.Write7BitLong(-1); return; } var count = list.Count; bw.Write7BitLong(count); Type genericArgtype = type.GetGenericArguments()[0]; for (int i = 0; i < count; i++) { Serializer.SerializeObject(genericArgtype, list[i], bw, settings, null, null); } }
public override void Serialize(BinaryTypesWriter bw, Type type, SerializerSettings settings, ISerializerArg serializerArg, object value) { Array array = value as Array; if (array == null) { bw.Write7BitLong(-1); return; } var count = array.Length; bw.Write7BitLong(count); Type elementType = array.GetType().GetElementType(); for (int i = 0; i < count; i++) { Serializer.SerializeObject(elementType, array.GetValue(i), bw, settings, null, null); } }
public override void Serialize(BinaryTypesWriter bw, Type type, SerializerSettings settings, ISerializerArg serializerArg, object value) { var dictionary = value as IDictionary; if (dictionary == null) { bw.Write7BitLong(-1); return; } var count = dictionary.Count; bw.Write7BitLong(count); Type genericArgKey = type.GetGenericArguments()[0]; Type genericArgVal = type.GetGenericArguments()[1]; foreach (var key in dictionary.Keys) { Serializer.SerializeObject(genericArgKey, key, bw, settings, null, null); Serializer.SerializeObject(genericArgVal, dictionary[key], bw, settings, null, null); } }
public override void Serialize(BinaryTypesWriter bw, Type type, SerializerSettings settings, ISerializerArg serializerArg, object value) { var hashset = value as System.Collections.IEnumerable; if (hashset == null) { bw.Write7BitLong(-1); return; } var method = type.GetProperty("Count"); var count = (int)method.GetValue(hashset); bw.Write7BitLong(count); Type genericArgtype = type.GetGenericArguments()[0]; foreach (var val in hashset) { Serializer.SerializeObject(genericArgtype, val, bw, settings, null, null); } }
public override void Serialize(BinaryTypesWriter bw, Type type, SerializerSettings settings, ISerializerArg serializerArg, object value) { var val = Convert.ChangeType(value, typeof(long)); bw.Write7BitLong((long)val); }
public override void Serialize(BinaryTypesWriter bw, Type type, SerializerSettings settings, ISerializerArg serializerArg, object value) { bw.Write7BitLong((int)(object)value); }