Ich habe zwei KlassenSOAP-Umschlag von Baseclass
public class Person
{
public String ForeName {get;set;}
//...
}
public class Customer : Person
{
public String LastName{get;set;}
//...
}
Wenn ich jetzt die Customer
über einen SOAP-Service zurückkehren, es wird nur den Namen in der SOAP-Envelope Probe in der Liste der Operationen zeigen.
Webmethode:
[WebMethod(MessageName = "getCustomer")]
public Customer GetCustomer()
{
return new Customer();
}
Antwort Beispiel:
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<getCustomerResponse xmlns="http://tempuri.org/">
<getCustomerResult>
<LastName>string</LastName>
</getCustomerResult>
</getCustomerResponse>
</soap:Body>
</soap:Envelope>
Hinweis: Der Code funktioniert gut, die WSDL richtig ist. Ich bin nur an der richtigen SOAP Envelope interessiert.
Frage: Wie kann ich die Customer
markieren, so dass sie auch die Eigenschaften von Person
angezeigt werden?
Ich bin mit C# ASP.Net im Framework 3.5
Hilft das? http://stackoverflow.com/questions/1262246/asmx-web-service-not-serializing-abstract-base-class – DavidG
Nein, der Kommentar unterhalb der Antwort gibt mein Problem wieder: "Es scheint, den richtigen Code zu generieren, * * es wird nur nicht in der Probe angezeigt. ** " – Bongo