public override Object read(POxOPrimitiveDecoder decoder) { try { if (canBeNull) { byte isNull = (byte)decoder.ReadByte(); if (isNull == 0x00) { return null; } } int size = decoder.readVarInt(true); IList list = (IList)typeof(List<>).MakeGenericType(genericTypes).GetConstructor(Type.EmptyTypes).Invoke(null); for (int i = 0; i < size; i++) { Object o = (Object)nestedSerializer.read(decoder); list.Add(o); } return list; } catch (ObjectDisposedException e) { throw new POxOSerializerException("Error during List deserializing.", e); } }
public override Object read(POxOPrimitiveDecoder decoder) { try { if (canBeNull) { byte isNull = (byte)decoder.ReadByte(); if (isNull == 0x00) { return null; } } int size = decoder.readVarInt(true); var list = (IDictionary)typeof(Dictionary<,>).MakeGenericType(new Type[] { keyObjectClass, valueObjectClass }).GetConstructor(Type.EmptyTypes).Invoke(null); for (int i = 0; i < size; i++) { Object key = keyNestedSerializer.read(decoder); Object value = valueNestedSerializer.read(decoder); list.Add(key, value); } return list; } catch (ObjectDisposedException e) { throw new POxOSerializerException("Error during List deserializing.", e); } }
public override Object read(POxOPrimitiveDecoder decoder) { try { int ordinal = decoder.readVarInt(true); ordinal--; Array enumConstants = classToSerialize.GetEnumValues(); return enumConstants.GetValue(ordinal); } catch (ArgumentException e) { throw new POxOSerializerException("Error during Enum deserializing.", e); } catch (ObjectDisposedException e) { throw new POxOSerializerException("Error during Enum deserializing.", e); } }