另一边开放的服务的方法是这样的
execute(InvType[] requestMessage)我要传值给他,代码怎么写呢?没用过数组的菜鸟一枚,谢谢各位了
InvType数组里有15个参数webservice数据开放c#

解决方案 »

  1.   

    InvType[] requestMessage = new InvType[]{r1,r2...r15};//假设你有15个InvType类型的变量
    然后execute(requestMessage);//就可以了。
      

  2.   

    首先ws传参都是强类型的,因此你引用了WS后,就可以得到方法所需参数的类型。
      

  3.   


    里面的15个参数是STRING DATETIME或者DECIMAL,我一这样去调用就报类型转换出错
      

  4.   


    会报这种错误
    InvType[] i =new InvType[15]{ls_string1, ls_string2, ls_string3, ls_string4, ls_string5, ls_string6, Convert.ToDecimal(ls_string7),
                        Convert.ToDecimal(ls_string8), Convert.ToDecimal(ls_string9), ls_string10,
                        ls_string11, ls_string12, ls_string13, ls_string14, ls_string15};
    无法将类型“string”隐式转换为“DataAccess.ERP_APP_KCYH.InvMaintenanceType”
      

  5.   

    数组里面的每一个元素的类型要一致,像你这样有的是string有的是decimal是不行的。而且你的数组的元素类型要求是InvType,是需要把你的string也好,decimal也好,要转成InvType类型才能放到InvType数组里面。
      

  6.   


    怎么转换呢?我是这样写的,ls_string1= (InvType)ls_string1;
    可是依然在报错
    CS0030: 无法将类型“string”转换为“DataAccess.ERP_APP_KCYH.InvType”
      

  7.   

    r1是方法里的一个参数,我这样赋值,就会提示NULL值InvType[] kc = new InvType[15];
     kc[0].r1 = ls_string1;
    ......
    kc[0].r15=ls_string15;
      

  8.   

    指的是15个参数的类型?那个我看到了,可是不知道怎么把值传到他这个方法里面 
    如果是这样的话,那么你的15个参数类型都可以封装成InvType类型,并且生成数组。