예제 #1
0
        private void Register(Type type, ISerializersContainer serializers)
        {
            var instanceSerializer = type.IsInterface || type.IsAbstract;
            var serializerPair     = myReflectionSerializersFactory.GetOrRegisterSerializerPair(type, instanceSerializer);

            ReflectionUtil.InvokeGenericThis(serializers, nameof(serializers.Register), type,
                                             new[] { serializerPair.Reader, serializerPair.Writer, RdId.DefineByFqn(type).Value });
        }
예제 #2
0
        public static void RegisterFrameworkMarshallers([NotNull] ISerializersContainer serializers)
        {
            serializers.Register(ReadByte, WriteByte, 1);
            serializers.Register(ReadShort, WriteShort, 2);
            serializers.Register(ReadInt, WriteInt, 3);
            serializers.Register(ReadLong, WriteLong, 4);

            serializers.Register(ReadFloat, WriteFloat, 5);
            serializers.Register(ReadDouble, WriteDouble, 6);
            serializers.Register(ReadChar, WriteChar, 7);
            serializers.Register(ReadBool, WriteBool, 8);
            serializers.Register(ReadVoid, WriteVoid, 9);

            serializers.Register(ReadString, WriteString, 10);
            serializers.Register(ReadGuid, WriteGuid, 11);
            serializers.Register(ReadDateTime, WriteDateTime, 12);
            serializers.Register(ReadUri, WriteUri, 13);
            serializers.Register(ReadRdId, WriteRdId, 14);

            serializers.Register(ReadSecureString, WriteSecureString, 15);

            serializers.Register(ReadByteArray, WriteByteArray, 31);
            serializers.Register(ReadShortArray, WriteShortArray, 32);
            serializers.Register(ReadIntArray, WriteIntArray, 33);
            serializers.Register(ReadLongArray, WriteLongArray, 34);

            serializers.Register(ReadFloatArray, WriteFloatArray, 35);
            serializers.Register(ReadDoubleArray, WriteDoubleArray, 36);
            serializers.Register(ReadCharArray, WriteCharArray, 37);
            serializers.Register(ReadBoolArray, WriteBoolArray, 38);

            //unsigned

            //clashes with Byte
//      serializers.Register(ReadUByte, WriteUByte, 41);
            serializers.Register(ReadUShort, WriteUShort, 42);
            serializers.Register(ReadUInt, WriteUInt, 43);
            serializers.Register(ReadULong, WriteULong, 44);

            //clashes with ByteArray
//      serializers.Register(ReadUByteArray, WriteUByteArray, 45);
            serializers.Register(ReadUShortArray, WriteUShortArray, 46);
            serializers.Register(ReadUIntArray, WriteUIntArray, 47);
            serializers.Register(ReadULongArray, WriteULongArray, 48);
        }
예제 #3
0
 public ReflectionSerializersFactory([NotNull] ITypesCatalog typeCatalog, IScalarSerializers scalars = null, Predicate <Type> blackListChecker = null)
 {
     myScalars = scalars ?? new ScalarSerializer(typeCatalog, blackListChecker);
     Cache     = new SerializersContainer(mySerializers);
     Serializers.RegisterFrameworkMarshallers(Cache);
 }