2017-05-23 1 views
0

Ich habe eine webservice asmx geschrieben für Android and ios, gut mit beiden kommunizieren, Methoden, die ich verwendet, um Werte in json Format zurückgeben und Beispiel Methode ist:Wie erhalten Response.Write() Ergebnis in String mit Methode der Rückgabetyp void in asp.net C#

[WebMethod] 
[ScriptMethod(ResponseFormat = ResponseFormat.Json)] 
public void Get_Rest_Distance(double startlat,double endlat,double startlng, double endlng) 
{ 
    double dist= GetDistance(startlat, endlat, startlng, endlng); 
    JavaScriptSerializer serializer = new JavaScriptSerializer(); 
    HttpContext.Current.Response.Write(serializer.Serialize(dist)); 
} 

die Zeile: HttpContext.Current.Response.Write(serializer.Serialize(dist));

verwendet wird, um Daten zu api Anruf von Android- und iOS zu geben,

Jetzt anrufen möchten diese Methode von meinem aspx Seite (Code Behind) und bemerkt, dass Rückgabetyp meiner Funktion ist void

I Referenz hinzugefügt meiner webserivice und schrieb ein paar Zeilen wie:

localhost.RestData obj = new localhost.RestData(); 
string testdata= obj.Get_Rest_Distance(33.200526, 34.027379, -87.5441, -88.167831); 

aber immer Fehler

Cannot implicitly convert type 'void' to 'string' 

Wie ich bereits erwähnt Methode ist von Rückgabetyp void und jetzt möchte ich die Daten erhalten, die HttpContext.Current.Response.Write(serializer.Serialize(dist)); Anweisung zurückgibt oder schreiben.

Hinweis: Kann nicht return in Methoden als Service-Live und beide Versionen Android ist und ios in der Produktionsumgebung arbeiten.

Bitte zögern Sie keine Frage zu stellen, ich werde mehr Code bei Bedarf bereitstellen.

+0

nach Ihrem Fehler deutet darauf hin, gibt es keinen Rückgabetyp (void) für Web-Service. Aber Sie versuchen, auf einen String von Ihrem Web-Service-Methode in "string testdata = obj.Get_Rest_Distance (33.200526, 34.027379, -87.5441, -88.167831);" Code –

+0

eigentlich möchte ich Werte, dass HttpContext.Current.Response.Write erhalten (serializer.Serialize (dist)); gibt zurück ... – Waqas

+0

nicht sicher, es kann Ihnen helfen oder nicht. Was ich vorschlagen werde, um eine Ashx-Datei (Generic Handler in VS) zu erstellen und rufen Sie Ihren Service von dort aus, und Sie können diese Ashx in Ihrem Aspx verwenden. refer https://stackoverflow.com/questions/5078152/returning-plain-text-or-other-arbitary-file-in-asp-net –

Antwort

0

können Sie Out Parameter verwenden, die so etwas wie diese:

static void OutParameter(out int tmp) 
    { 
     ShowValue("OutParameter (pre): "); 
     tmp = 10; 
     ShowValue("OutParameter (post): "); 
    } 
+0

aber ich bin nicht erlaubt, Code im Service zu ändern, ich muss darauf in zugreifen nur Aspx-Seite – Waqas

Verwandte Themen