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); } }
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); } }