Example #1
0
    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);
        }
    }
Example #2
0
    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);
        }
    }
Example #3
0
    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);
        }
    }