Rückgabe mehrerer Werte aus einer webservice?
Ich bin sehr neu in der Welt des web-services, also bitte Geduld mit mir.
Ich bin der Schaffung eines sehr einfachen web service in Visual Studio 2010 verwenden .asmx-Dateien.
Hier ist der code, den ich verwende:
namespace MyWebService
{
[WebService(Namespace = "http://www.somedomain.com/webservices")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
public class Service1 : System.Web.Services.WebService
{
[WebMethod]
public string simpleMethod(String str)
{
return "Hello " + str;
}
}
}
Wenn ich aufrufen, und geben Sie den Wert "John Smith" für den str-parameter es gibt:
<?xml version="1.0" encoding="utf-8"?>
<string xmlns="http://www.somedomain.com/webservices">Hello John Smith</string>
Meine Frage ist, was ist die beste Vorgehensweise für die Rückgabe mehr als 1 Wert für eine web service-Methode? Wenn die Werte alle den gleichen Datentyp sollte ich ein array verwenden? Wenn die die Werte enthalten, die unterschiedliche Datentypen brauche ich zum erstellen einer benutzerdefinierten Klasse?
IMO, das beste design ist, deklarieren Sie eine Klasse at Ihre WSDL und die Instanz zurück. Dieser Weg, diese Methode kann aufgerufen werden, indem Sie andere Frameworks, da die ausgetauschten Typ public ist und keine framework-spezifisch.
Ich würde nicht zu Schaden kommen, über einen webservice oder nicht. Schicken Sie einfach die Daten geben, die Sie benötigen.
Gib mir 1 minute
Könnten Sie ein feedback auf meine Antwort? Ist es das, was Sie gesucht haben?
Schauen Sie sich die neue Beispiel habe ich Hinzugefügt, um meine Antwort. Grüße.
Ich würde nicht zu Schaden kommen, über einen webservice oder nicht. Schicken Sie einfach die Daten geben, die Sie benötigen.
Gib mir 1 minute
Könnten Sie ein feedback auf meine Antwort? Ist es das, was Sie gesucht haben?
Schauen Sie sich die neue Beispiel habe ich Hinzugefügt, um meine Antwort. Grüße.
InformationsquelleAutor Baxter | 2012-08-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich glaube, dass das beste design ist eine Klasse schreiben und auch auf Ihrer WSDL -. Dadurch wird die Klasse Signatur mit der Beschreibung Ihrer Dienstleistung. Dies bedeutet, dass ein Kunde, trotz der Sprache, wird in der Lage sein, ein Objekt zu verwenden, geben Sie.
Beim erstellen dieser Klasse, versuchen Sie nicht zu verwenden .Net integrierte benutzerdefinierte Typen, wie
DataSet
oder anyother. Versuchen Sie immer mit einem grundlegenden Typen, Wann immer möglich. Dadurch wird sichergestellt, dass Ihr Objekt wird leicht serialisiert und deserialisiert, sowie von Kunden entwickelt, die Rahmenbedingungen andere als .Net.Bitte prüfen Sie diese Frage: Wie Erklären Komplexe, Verschachtelte C# Geben Sie für die Web-Service
Es zeigt ein wenig code und eine kleine Beratung.
Lassen Sie mich wissen, wenn Sie benötigen keine weitere Unterstützung.
UPDATE
Lassen Sie uns sagen, dass Sie zurückkehren möchten, für eine bestimmte webmethod, die folgenden Daten:
Schauen, wie der service wäre, signiert:
Nach dem Aufruf von ihm, das ist das Ergebnis:
Und das beste ist, dass, weil diese Klasse Signatur ist öffentlich (in der WSDL enthalten), können Sie Folgendes tun an einem anderen Projekt, indem Sie einfach die Verarbeitung des WSDL:
Ich aktualisiert meine Antwort, check it out
Vielen Dank für die tolle Erklärung.
Sie sind willkommen, danke für Ihr feedback
Hallo! Sehen Sie, wie sich ein student hat eine Liste der Kurse? Es wäre die gleiche Idee, Sie würde einen Typ - zum Beispiel
Result
- das wäre einList<Student>
.InformationsquelleAutor Andre Calil