WebMethod возвращает значения в формате JSON - PullRequest
10 голосов
/ 24 января 2010

Как вернуть значения из 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);)

1 Ответ

11 голосов
/ 24 января 2010

Я бы просто пошел с объектом. Это соответствует тому, что вам нужно сделать. Если у вас есть два возвращаемых значения, вы должны структурировать их вместе.

  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;
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...