当前位置: 代码迷 >> Web Service >> 怎么向Webservice里传递类参数
  详细解决方案

怎么向Webservice里传递类参数

热度:398   发布时间:2016-05-02 03:09:53.0
如何向Webservice里传递类参数
我有一个类在webservice和客户端都定义了以下的类
  public class M_v_user
  {
  public M_v_user()
  { }
  #region Model
  private int _userid;
  private string _name;
  private int _unitid;

  }
在webservice上的WebService2代码如下:
  [WebMethod]
  public model.M_v_user user(model.M_v_user tempMuser)
  {
   
  DataSet ds = DAL.D_t_user.user_select(tempMuser.userid);
  model.M_v_user muser = new model.M_v_user();
  muser.unitname = ds.Tables[0].Rows[0]["unitname"].ToString();
  muser.username = ds.Tables[0].Rows[0]["username"].ToString();
  return muser;
  }

然后我想通过客户端将M_v_user类传递到webservice中,代码如下
  model.M_v_user Muser = new model.M_v_user();
  Muser.userid = userid;
  Num2.Text = MyuserS.user(Muser).unitname;
  Num3.Text = MyuserS.user(Muser).username;

但报了如下的错误
错误1: 与“WebService_windows.WebService2.WebService2.user(WebService_windows.WebService2.M_v_user)”最匹配的重载方法具有一些无效参数 D:\guojian\eppro\c#\temp\WebService-windows\WebService-windows\Form1.cs 29 25 WebService-windows

应如何向WeBService传递这样的类参数呢,望大家能解答解答


------解决方案--------------------
M_v_user 应该用WebService在客户端生成的客户端代理namespace下的那个类。
你在客户端自己定义的类不行的。

-----

BTW:你们这命名真是乱啊...不符合C#的命名规则。
------解决方案--------------------
WCF可以解决此问题.如故WS要用序列化一下能成字符串用也成.

------解决方案--------------------
MyObject obj = new MyObject();
obj.n1 = 1;
obj.n2 = 24;
obj.str = "Some String";
IFormatter formatter = new BinaryFormatter();
Stream stream = new FileStream("MyFile.bin", FileMode.Create, FileAccess.Write, FileShare.None);
formatter.Serialize(stream, obj);
序列化然后转成字符串来会发,过去了再反序列化转换成对象就好了.

------解决方案--------------------
C# code
Service.pos.test other = new Service.pos.test();other.code="001";posservice.queryGoods(other);
------解决方案--------------------
写成字符窜
{tempMuser:{userid:1}}
  相关解决方案