ASMX Возвращение чистой строки - PullRequest
5 голосов
/ 02 января 2011

У меня есть веб-сервис ASP.NET (.asmx). Мой сервис определяется следующим образом:

[System.Web.Services.WebService(Namespace = "http://tempuri.org/")]
[System.Web.Services.WebServiceBinding(ConformsTo = System.Web.Services.WsiProfiles.BasicProfile1_1)]
public class MyService : System.Web.Services.WebService
{
  [System.Web.Services.WebMethod]
  public string GetResult()
  {
    string result = "";

    int day = System.DateTime.UtcNow.Day;
    if ((day % 1) == 1)
      result = "odd";
    else
      result = "even";
    return result;
  }
}

В настоящее время, если я вызываю этот метод обслуживания, я получаю следующий результат:

<?xml version="1.0" encoding="utf-8"?>
<string xmlns="http://tempuri.org/">even</string>

Моя проблема в том, что мне нужно вернуть только строковую часть. Я не хочу возвращать упаковочный XML. Как мне сделать это с .asmx?

Спасибо!

Ответы [ 3 ]

4 голосов
/ 03 января 2011

Должен ли это быть .asmx веб-сервис для этого? Я имею в виду, исключая конверт SOAP, вы по сути говорите: «Это не веб-сервис SOAP», поэтому почему бы не сделать шаг вперед и сделать его обычной .aspx страницей вместо .asmx веб сервис.

На странице то, что вы пытаетесь сделать, будет тривиальным. Удалите всю разметку со страницы, используйте Response.Headers, чтобы соответствующим образом отредактировать заголовки ответа, Response.Write(), чтобы вывести ваш необработанный текст, и Response.End(), чтобы закрыть ответ.

2 голосов
/ 02 января 2011

Используйте json

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

Атрибут веб-службы: [ScriptService]

ВебАтрибут метода: [ScriptMethod(ResponseFormat = ResponseFormat.Json)]

Прочитать образец Здесь

0 голосов
/ 02 января 2011

Почему вы хотите избавиться от части XML? Код, который генерируется прокси-сервером, нуждается в общем формате, чтобы он мог понимать и читать возвращаемые данные. Удаление XML по существу делает ваши возвращаемые данные нечитаемыми для клиентского прокси.

...