没有WriteArray?或者将Array转成String先 

解决方案 »

  1.   

    C++里面也有定义数组的啊。跟Java差不多啊。
    自己UP一下
      

  2.   

     1     /// <summary>
     2     /// 返回字符串
     3     /// </summary>
     4     /// <returns></returns>
     5     [WebMethod]
     6     public string HelloWorld()
     7     {
     8         return "Hello World";
     9     }
    10 
    11     /// <summary>
    12     /// 返回一个简单对象
    13     /// </summary>
    14     /// <returns></returns>
    15     [WebMethod]
    16     public Book GetBook()
    17     {
    18         return new Book
    19         {
    20             Id = 1,
    21             Name = "三国演义",
    22             Author = "罗贯中",
    23             Price = 100
    24         };
    25     }
     如上便是WebService方法定义和在Flex的客户端(mxml)通过<mx:WebService>标签来访问WebService的完整流程,下面我们来看看在Flex的客户端怎么去调用WebService所定义的方法: 1 <mx:Script>
     2     <![CDATA[
     3         import mx.controls.Alert;
     4         import mx.rpc.events.FaultEvent;
     5         import mx.rpc.events.ResultEvent;
     6         
     7         /**
     8          * 向WebService发起请求--调用HelloWorld方法,dataService为<mx:WebService>的id
     9          * */
    10         internal function onRequest():void
    11         {
    12             dataService.HelloWorld();
    13         }
    14         
    15         /**
    16          * 请求成功处理返回结果
    17          * */
    18         internal function onSuccess(evt:ResultEvent):void
    19         {
    20             Alert.show(evt.result.toString());
    21         }
    22         
    23         
    24         /**
    25          * 请求失败的处理函数
    26          * */
    27         internal function onFault(evt:FaultEvent):void
    28         {
    29             Alert.show("访问WebService失败!");
    30         }
    31     ]]>
    32 </mx:Script>
     
    通过上面的调用,就可以完成一个Flex和.NET WebService的交互。当然我们在Flash/Flex的客户端调用WebService也是可以传递参数的,如下WebService的WebMethod定义: 1     /// <summary>
     2     /// 将传递进来的参数转化为大写字符返回
     3     /// </summary>
     4     /// <param name="value"></param>
     5     /// <returns></returns>
     6     [WebMethod]
     7     public string ConvertToUpper(string value)
     8     {
     9         return value.ToUpper();
    10     }
     
    通过在<mx:WebService>标签下配置<mx:operation>执行该方法就可以访问了,如下:1 <mx:operation name="ConvertToUpper"  result="onSuccess(event)" fault="onFault(event)"/>
     1     /**
    2      * 向WebService发起请求
    3      * */
    4     internal function onRequest():void
    5     {
    6         //dataService.HelloWorld();
    7         dataService.ConvertToUpper("abcdefg");
    8     }另外,我们还可以通过<mx:request>来传递参数,这里只需要知道<mx:request></mx:request>里的参数配置与WebService提供的WebMethod方法参数同名就OK。回到前面看看WebService的方法定义,其中一个方法GetBook是返回的一个Book对象,如果是返回的对象我们在Flex的客户端怎么来获取这个对象的值呢?详细见如下代码示例: 1     internal function onObject():void
     2     {
     3         dataService.GetBook();
     4     }
     5     
     6     internal function onObjectSuccess(evt:ResultEvent):void
     7     {
     8         //直接通过事件的result属性得到返回值,然后直接访问属性便OK
     9         Alert.show(evt.result.Name);
    10     }
    11     
    12     /**
    13      * 请求失败的处理函数
    14      * */
    15     internal function onFault(evt:FaultEvent):void
    16     {
    17         Alert.show("访问WebService失败!");
    18     }
     
    如上便完成了服务端的WebService返回对象到客户端的调用。
      

  3.   

    关键在于soap格式,直接post xml过去,还需要什么类型,这个xml和你用java调用不是一样的吗
      

  4.   

    http://hi.baidu.com/xingnan34/blog/item/cbb5af44a2de0743510ffed8.html