Когда мой веб-сервис возвращает пользовательский объект (содержащий только четыре строки, три целых числа и логическое значение), это занимает несколько секунд (4-8 секунд). Когда один и тот же сервер отправляет одну и ту же информацию в виде строки, это происходит почти мгновенно.
Пользовательский класс объектов определяется в той же веб-службе, если это имеет значение.
Я не думал, что это будет иметь такое большое значение, или я пропустил что-то фундаментальное здесь?
Изменить: некоторый код, я удалил некоторые переменные для облегчения чтения.
Пользовательский класс, определенный в веб-службе:
public class AddressSearchResult
{
public AddressSearchResult()
{
Address = String.Empty;
Country = String.Empty;
}
public AddressSearchResult(string address, string country)
{
Address = address;
Country = country;
}
public string Address { get; set; }
public string Country { get; set; }
}
Единственная разница между двумя WebMethods в веб-службе заключается в операторе возврата:
WebMethod1 возвращает объект
return new AddressSearchResult((string)address["address"], (string)address["country"]);
WebMethod2 возвращает только строку (просто чтобы показать, что я делаю то же самое здесь)
return new AddressSearchResult((string)address["address"], (string)address["country"]).Address;
Принимающая сторона, консольное приложение:
AddressSearchResult result = adrSerWS.method1("example", "yehaa"); //THIS IS SLOW
string result2 = adrSerWS.method2("example", "yehaa"); //THIS IS FAST