2010-12-09 14 views
12

Ich bekomme eine "Unspecified error", wenn ich versuche, eine bestimmte Web-Service-Methode aufzurufen. Mit XMLSpy stelle ich fest, dass das Parameterobjekt gerade nicht serialisiert wurde.XML Serialisierung: Objekt nicht serialisiert

In der generierten Serializer Quelle stelle ich die folgenden Zeilen:

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

Allerdings hatte die WSDL-Datei importieren eine Einheit moonraker1.BookingService, so dass der Typ des Parameters Objekt ist eigentlich moonraker1.BookingService.Conference genannt erstellt. Es scheint durchaus möglich, dass das Objekt deshalb nicht serialisiert ist, obwohl ich nicht verstehe, warum die Nachricht immer noch an den Web-Service weitergegeben wird.

Bitte kann jemand Licht darauf werfen? Oder bin ich ganz auf dem Holzweg?

+0

, welche Version von Delphi verwenden Sie? – Sam

+3

Dieser Code ist nicht Delphi, ist diese Frage korrekt markiert? –

+0

Ist das Parameter-Objekt in der wsdl als optional gekennzeichnet? Wenn dies der Fall ist, müssen Sie das Feld "ParameterSpecified" auf "true" setzen, um es zu serialisieren. – Ryan

Antwort

1

Jetzt bin ich mir nicht sicher, ob das ist, aber es sieht aus wie einige .NET-Code. Vielleicht ist die Antwort so einfach wie Sie einen Standardkonstruktor in Ihrem Typ haben müssen.

Meine eigene Erfahrung aus der Serialisierung in .NET ist, dass die meiste Zeit nur es ist, weil ich einen benutzerdefinierten Konstruktor geschrieben haben und dann vergessen haben, danach einen Standardkonstruktor zu schreiben ..