public void WriteClass(Type clazz)
        {
            ObjectSerializationHandler handler =
                ObjectSerializerRegistry.GetHandlerByObjectType(clazz);
            ObjectTypeMapper mapper =
                ObjectSerializerRegistry.GetMapperByObjectType(clazz);

            if (handler == null && clazz.IsArray)
            {
                //we may have special handlers for certain types of arrays
                //if handler is null, treat like any other array
                WriteByte(BinaryObjectEncoder.OBJECT_TYPE_ARRAY);
                WriteClass(clazz.GetElementType());
            }
            else if (mapper == null)
            {
                throw new ConnectorException("No serializer for class: " + clazz);
            }
            else
            {
                String typeName = mapper.HandledSerialType;
                WriteByte(BinaryObjectEncoder.OBJECT_TYPE_CLASS);
                WriteString(typeName, true);
            }
        }
Ejemplo n.º 2
0
        private static String EncodeClass(Type clazz)
        {
            ObjectSerializationHandler handler =
                ObjectSerializerRegistry.GetHandlerByObjectType(clazz);
            ObjectTypeMapper mapper =
                ObjectSerializerRegistry.GetMapperByObjectType(clazz);

            if (handler == null && clazz.IsArray)
            {
                //we may have special handlers for certain types of arrays
                //if handler is null, treat like any other array
                return(EncodeClass(clazz.GetElementType()) + "[]");
            }
            else if (mapper == null)
            {
                throw new ConnectorException("No serializer for class: " + clazz);
            }
            else
            {
                String typeName = mapper.HandledSerialType;
                return(typeName);
            }
        }