2010-01-24 7 views
10

Webmethod에서 JSON 형식으로 클라이언트에 값을 반환하는 방법은 무엇입니까?WebMethod에서 JSON 형식의 값을 반환합니다.

반환 할 정적 int 값이 두 개 있습니다.
두 속성으로 새 개체를 만들어서 반환해야합니까?
의 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

관련 문제