2016-08-17 6 views
0

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

+0

Hilft das? http://stackoverflow.com/questions/1262246/asmx-web-service-not-serializing-abstract-base-class – DavidG

+0

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

Antwort

Verwandte Themen