2010-12-09 17 views
12

Obtengo un "Unspecified error" cuando intento llamar a un método de servicio web en particular. Usando XMLSpy descubro que el objeto de parámetro simplemente no ha sido serializado.Serialización de XML: objeto no serializado

En la fuente serializador generada I nota de las líneas:

if (!needType) { 
    System.Type t = o.GetType(); 
    if (t == typeof(global::moonraker1.Conference)) { 
    } 
    else { 
    throw CreateUnknownTypeException(o); 
    } 
} 

Sin embargo, la importación WSDL había creado una unidad llamada moonraker1.BookingService, por lo que el tipo del objeto parámetro es en realidad moonraker1.BookingService.Conference. Parece completamente posible que esta sea la razón por la cual el objeto no está serializado, aunque no entiendo por qué el mensaje todavía parece ser pasado al servicio web.

Por favor, ¿alguien puede arrojar algo de luz sobre esto? ¿O estoy completamente equivocado?

+0

la versión de Delphi está usando? – Sam

+3

Ese código no es Delphi, ¿esta pregunta está etiquetada correctamente? –

+0

¿El objeto de parámetro está marcado como opcional en el wsdl? Si es así, debe establecer el campo 'ParameterSpecified' en true para serializarlo. – Ryan

Respuesta

1

Ahora no estoy seguro de si esto es así, pero parece un código .NET. Quizás la respuesta sea tan simple como que necesite tener constructor predeterminado en su tipo.

Mi propia experiencia de serialización en .NET es que la mayoría de las veces es sólo porque he escrito un constructor costumbre y luego se olvidó de escribir un constructor por defecto después ..

Cuestiones relacionadas