2010-01-24 15 views
10

JSON प्रारूप में क्लाइंट को वेबमाइंड से मान कैसे वापस करें?JSM प्रारूप में WebMethod वापसी मान

दो स्थैतिक int मान हैं जिन्हें मैं वापस करना चाहता हूं।
क्या मुझे उन 2 गुणों के साथ नई वस्तु बनाने और इसे वापस करने की आवश्यकता है?
GetStatus() विधि अक्सर कहा जाता है और मैं एक विशेष वस्तु सिर्फ json प्रारूपण के लिए हर बार बनाने के विचार पसंद नहीं है ...

[WebMethod] 
public static int GetStatus() 
{ 
    int statusProcess,statusProcessTotal; 

    Status.Lock.EnterReadLock(); 
    statusProcess=Status.Process; //Static field 
    statusProcessTotal=Status.ProcessTotal; //Static field   
    Status.Lock.ExitReadLock(); 

    return ... 
} 

ग्राहक पक्ष पर मैं में वापसी मान पकड़ने:

function OnSucceeded(result, userContext, methodName) 
(PageMethods.GetStatus(OnSucceeded, OnFailed);) 

उत्तर

11

मैं बस एक वस्तु के साथ जाऊंगा। यह आपको जो करना है उसके साथ फिट बैठता है। यदि आपके पास दो रिटर्न वैल्यू हैं तो आपको उन्हें एक संरचित तरीके से एक साथ रखना होगा।

public class StatusResult 
     { 
      public int StatusProcess { get; set; } 
      public int StatusProcessTotal { get; set; } 
     } 

    [WebMethod] 
     [ScriptMethod(ResponseFormat = ResponseFormat.Json)] 
     public StatusResult GetStatus() 
     { 
      int statusProcess,statusProcessTotal; 

      //Status.Lock.EnterReadLock(); 
      statusProcess = 5; 
      statusProcessTotal = 1; //Static field   


      var result = new StatusResult(); 
      result.StatusProcess = statusProcess; 
      result.StatusProcessTotal = statusProcessTotal; 

      return result; 
     } 
+0

क्या आप एक उदाहरण दे सकते हैं? – kenny

+0

ठीक है, अब एक कामकाजी उदाहरण जोड़ा गया। –

+0

हर बार विधि कहलाते समय नई वस्तु को पुनर्जीवित करने के बारे में क्या? क्या यह दक्षता को प्रभावित नहीं करता है? – kenny

संबंधित मुद्दे