|
分類:[.NET 全般]
同じ現象が出てる方、いらっしゃいますでしょうか?
VisualStudio2012(C#.NET)+Windows7(PRO,64bit)+IIS7 でWEBサービスのプログラムを作成していますが、WEB側からクラスの配列の結果を返すと クライアント側では配列0個の結果が返ってきてしまいます。 デバッグでWEB側にアタッチしてみると、下記[※1]のところで1個の配列の結果を 返しているのは確認できているのですが、なぜか[※2]のところで配列0個の結果に なっています。
因みにプロキシクラスは、WEBサーバプログラムをローカルのIISにデプロイした形で 開発環境からWEB参照で作成しました。
原因が判らずに困っています
-------------------------------------------------------------------------------- WEBサービスから返すカスタムクラス -------------------------------------------------------------------------------- [Serializable] public class class_a { private int vali; private class_b valb;
public class_a(){ } public int Vali{ set{ this.vali = value; } get{ return this.vali; }
public class_b get_b(){ } public bool set_b(int i, string s){ }
private int private_func_x(){ } }
[Serializable] public class class_b { private int vali; private string vals;
public class_b(){ } public int Vali{ set{ this.vali = value; } get{ return this.vali; } public string Vals{ set{ this.vals = value; } get{ return this.vals; }
private int private_func_y(){ } }
-------------------------------------------------------------------------------- WEBサービス側 -------------------------------------------------------------------------------- [WebMethod] [XmlInclude(typeof(class_a))] [XmlInclude(typeof(class_b))] public class_a[] service_get_a() { ArrayList list = new ArrayList(); for(/*省略*/){ class_a objA = new class_a(); /*省略*/ list.Add(objA); } class_a[] ret = new class_a[list.Count]; for(int i = 0; i < list.Count; ++i){ ret[i] = list[i]; } return ret; //<--[※1] }
-------------------------------------------------------------------------------- クライアント側 -------------------------------------------------------------------------------- private void button1_Click(object sender, System.EventArgs e) { // Web サービスよりカスタムデータの取得 WSclass_a.Service1 ws = new WSclass_a.Service1(); object[] objA = ws.service_get_a(); //<----[※2] }
|