私のWebサービスがカスタムオブジェクト(4つの文字列、3つのint、およびブール値のみを含む)を返す場合、数秒(4〜8秒)かかります。同じサーバーが同じ情報を文字列で送信すると、ほぼ瞬時に送信されます。
それが重要な場合、カスタムオブジェクトクラスは同じWebサービスで定義されます。
私はそれがそれほど大きな違いを生むとは思いませんでしたか、それともここで基本的な何かを見逃しましたか?
編集:いくつかのコード、読みやすくするためにいくつかの変数を削除しました。
Webサービスで定義されたカスタムクラス:
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; }
}
Webサービス上の2つのWebMethodの違いは、returnステートメントだけです。
objを返す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