2010-01-24 28 views
10

Webmethod değerlerini JSON biçimindeki istemciye nasıl iade edilir?WebMethod döndürme değerleri JSON biçiminde

Geri dönmek istediğiniz iki statik int değeri vardır.
Bu 2 özelliğe sahip yeni bir nesne oluşturup geri vermem gerekiyor mu?
getStatus() yöntemi sıklıkla denir ve ben sadece json biçimlendirme için her zaman özel bir nesne oluşturma fikrini sevmiyorum ...

[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 ... 
} 

istemci tarafında ben dönüş değeri yakalamak:

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

cevap

11

Sadece bir nesne ile giderdim. Yapman gerekeni ile uyuyor. Eğer iki geri dönüş değeriniz varsa bunları bir araya getirmeniz gerekir.

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

Bir örnek verebilir misiniz? – kenny

+0

Tamam, şimdi bir çalışma örneği ekledi. –

+0

Metod her çağrıldığında yeni nesneyi yeniden oluşturmaktan ne haber? Verimliliği etkilemiyor mu? – kenny

İlgili konular