C # Webservice: генерировать исключение с дополнительными свойствами в JSON - PullRequest
3 голосов
/ 26 февраля 2010

У меня есть веб-сервис, написанный на C #. Когда на сервере происходят ошибки, я бы хотел сообщить об этом клиентской стороне пользователя. Это прекрасно работает, генерируя исключения на стороне сервера, которые затем отправляются на мою клиентскую часть обработчика ошибок.

Тем не менее, я хотел бы, когда я выбрасываю исключение, установить свойство, описывающее, насколько серьезной, на мой взгляд, является ошибка на данный момент. Таким образом, я могу решить на стороне клиента, как отобразить ошибку:

WebService.Method(some_value, handle_response, handle_error);

function handle_response (response) {
    //Do something...
}

function handle_error (error) {
    if(error.level === 'Critical') {
        //Show critical message.
    } else if(error.level === 'Warning') {
        //Show warning message.
    } else 
        ...
    }
}

Мое решение до сих пор заключалось в создании пользовательского исключения, наследуемого от System.Exception. Мой веб-сервис возвращается с результатом JSON.

Моя проблема в том, как передать мое свойство в ответ JSON на стороне клиента?

1 Ответ

3 голосов
/ 26 февраля 2010

веб-сервис:

     public Response zzz()
        {
          Response result;
           try
        {
         ...
        }
        catch(MyException)
        {
          result.HasError = true;
          result.Error.Level = Normal;
          result.Error.Message = "It's OK.";
        }
        catch(Exception)
        {
result.HasError = true;
          result.Error.Level = Critical;
          result.Error.Message = "!!!!";
        }
        }

, затем проверьте Response.HasError

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...