Hallo,
ich habe ein merkwürdiges Problem.
Ich habe einen Webservice der mir ca. 10 Funktionen bereitstellt.
Die Funktionen geben unterschiedliche komplexe Objekte zurück, was super funktioniert, nur bei drei Funktionen die mir ein Benutzerdefiniertes Objekt zurück geben, ist die Beschreibung der komplexen Objekte in der automatisch generierten WSDL Datei unvollständig.
In der Beschreibung der komplexen Objekte fehlen einfach einige Objekte, z.B. strings, guids, und ints.
Ich weiß leider gar nicht wo ich mit der Fehlersuche anfangen soll.
Hat jemand einen Tipp für mich?
Gruß
Tim
Wenn ich den Webservice mit webservice.asmx?WSDL aufrufe, sehe ich in der Beschreibung, dass einige Typen in der Beschreibung des komplexen Typs "PaymentStatus" fehlen.
Tim
Und wie schaut der Code der PaymentStatus-Klasse aus?
Das hier ist meine PaymentStatus Klasse.
Das Objekt wird beim Aufruf der Methode CaptureEDD() erzeugt und zurückgegeben.
public class PaymentStatus
{
protected PaymentStatus() { }
public PaymentStatus(Guid payID, Guid xID, Guid reqID, Int64 transID, int amount, string status, string description, Int64 code, string type, DateTime requestDate)
{
this._PayID = payID;
this._XID = xID;
this._ReqID = reqID;
this._TransID = transID;
this._Amount = amount;
this._Status = status;
this._Description = description;
this._Code = code;
this._Type = type;
this._RequestDate = requestDate;
}
private Guid _PayID;
public Guid PayID
{
get { return _PayID; }
}
private Guid _XID;
public Guid XID
{
get { return _XID; }
}
private Guid _ReqID;
public Guid ReqID
{
get { return _ReqID; }
set { _ReqID = value; }
}
private Int64 _TransID;
public Int64 TransID
{
get { return _TransID; }
}
private int _Amount;
public int Amount
{
get { return _Amount; }
set { _Amount = value; }
}
private string _Status;
public string Status
{
get { return _Status; }
}
private string _Description;
public string Description
{
get { return _Description; }
}
private Int64 _Code;
public Int64 Code
{
get { return _Code; }
}
private string _Type;
public string Type
{
get { return _Type; }
set { _Type = value; }
}
private DateTime _RequestDate;
public DateTime RequestDate
{
get { return _RequestDate; }
set { _RequestDate = value; }
}
}
Tim
Auch lustig ist die Tatsache, dass strings scheinbar optional sind.
Habe die Lösung gerade selber gefunden.
Die fehlenden Typen haben keinen Setter in der PaymentStatus.
Warum diese Typen deswegen nicht in der WSDL Datei auftauchen ist mir aber nicht ganz klar.
Vielen Dank trotzdem.
Tim
Auch lustig ist die Tatsache, dass strings scheinbar optional sind.
Was vermutlich daran liegt, dass Strings Referenztypen sind und daher auch den Wert "kein Wert" (null) aufnehmen können.
Anderseits hat XML keinerlei "read-only"-Semantik. Irgendwie konsequent sowas zu ignorieren.