webservice 地址:https://orderapi.rms.rakuten.co.jp/rms/mall/order/api/ws?wsdl
在添加引用内已改名为:rakutan
其中有个类为:OrderApiService本因实例化:使用其中若干方法和属性。rakutan.OrderApiService port = new rakutan.OrderApiService();
 
此时出错!错误为:无法生成临时类(result=1)。
error CS0030: 无法将类型“string[]”转换为“string”
请高手指教。第一次碰见实例化时出错。茫然了……

解决方案 »

  1.   

    java的东西,你能拿过来实例化吗
      

  2.   

    C#调用Java的服务
     添加web引用
     然后将地址填入
    找到类的所在命名空间
    然后可以实例化了
      

  3.   

    C#调用Java的服务
     添加service引用
     添加是可以测试下
     然后将地址填入
     找到类的所在命名空间
     然后可以实例化了
      

  4.   

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using UseService.ServiceReference1;//
    namespace UseService
    {
        class Program
        {
            static void Main(string[] args)
            {
                ServiceReference1.orderModel oo=new orderModel();//orderModel 里面的方法
                Console.WriteLine(oo.cardStatus);//返回状态
                
            }
        }
    }
    这是我刚刚试过的 有返回值呢
      

  5.   

    你是啥版本我用.net 3.5生成没问题。var order = new rakutan.OrderApiServiceClient();
      

  6.   

    10楼 高手说的应该对的
    上次我有个服务没有调用成呢,也是这个高手指点的呢
    不过,我没有这么写,直接就是new里面的类,然后,调用里面的方法呢。
      

  7.   

    惊奇的发现你调用的是日本乐天的webservice。呵呵。
      

  8.   

    全部代码贴出来吧,哎!
    private void Form1_Load(object sender, EventArgs e)
            {
                //创建认证模块并赋值
                rakutan.userAuthModel auth = new RakutanAPITest.rakutan.userAuthModel();
               auth.authKey = "XXXXXXXXXXXX";
               auth.shopUrl = "test";
                auth.userName = "test";           //创建请求
                rakutan.getOrderRequestModel request = new RakutanAPITest.rakutan.getOrderRequestModel();           //进行认证并获得请求返回值
                //构造是出错
                rakutan.OrderApiService port = new rakutan.OrderApiService();
                rakutan.getOrderResponseModel response = port.getOrder(auth, request);            if (response.errorCode != null && response.errorCode == "NOO-000")
                {
                    //开始处理事务(此处只打印出货品编号)
                    foreach (rakutan.orderModel m in response.orderModel)
                    {
                        MessageBox.Show(m.orderNumber);
                    }
                }
                else
                {
                    MessageBox.Show(response.errorCode);
                }
            }
      

  9.   

    .net2.0的确有问题,我也报错。System.InvalidOperationException was unhandled
      Message=Unable to generate a temporary class (result=1).
    error CS0030: Cannot convert type 'string[]' to 'string'  Source=System.Xml
      StackTrace: 
    尝试下用 svcutil.exe 生成客户端代理看看。
      

  10.   

    Vs.net 2005是采用WebService引用,.Net 2
    如果是
    VS.net 2008 SP1,VS.net 2010【添加服务引用】是采用WCF引用
    .Net 3.5或者.Net 4对Java WebService解析也不一样,所以可以成功估计
      

  11.   

    估计是.net2.0的bug:http://webservices20.blogspot.com/2010/02/net-wcf-bug-cannot-convert-type-to.html
    http://social.msdn.microsoft.com/forums/en-US/asmxandxml/thread/e33305c3-b5f6-4922-8a3f-df202088d25a/在下面的xsd中(https://orderapi.rms.rakuten.co.jp/rms/mall/order/api/ws?xsd=1):<xs:complexType name="gbuyItemModel"> 
    <xs:sequence> 
    <xs:element name="currentSumAmount" type="xs:int" minOccurs="0" /> 
    <xs:element name="gbuyBidInventoryModel" type="tns:gbuyBidInventoryModel" nillable="true" minOccurs="0" maxOccurs="unbounded" /> 
    <xs:element name="gbuyGchoiceModel" type="tns:gbuyGchoiceModel" nillable="true" minOccurs="0" maxOccurs="unbounded" /> 
    <xs:element name="isShiftStatus" type="xs:boolean" minOccurs="0" /> 
    <xs:element name="shiftDate" type="xs:dateTime" minOccurs="0" /> 
    <xs:element name="unitText" type="xs:string" minOccurs="0" /> 
    </xs:sequence> 
    </xs:complexType>需要加上<xs:complexType name="gbuyItemModel"> 
    <xs:sequence> 
    <xs:element name="currentSumAmount" type="xs:int" minOccurs="0" /> 
    <xs:element name="gbuyBidInventoryModel" type="tns:gbuyBidInventoryModel" nillable="true" minOccurs="0" maxOccurs="unbounded" /> 
    <xs:element name="gbuyGchoiceModel" type="tns:gbuyGchoiceModel" nillable="true" minOccurs="0" maxOccurs="unbounded" /> 
    <xs:element name="isShiftStatus" type="xs:boolean" minOccurs="0" /> 
    <xs:element name="shiftDate" type="xs:dateTime" minOccurs="0" /> 
    <xs:element name="unitText" type="xs:string" minOccurs="0" />
    <xs:element minOccurs="0" name="dummyFriend" type="xsd:string"/>   
    </xs:sequence> 
    </xs:complexType>
      

  12.   

    上面写错了,是xsd另一个节点的问题,的确是bug
    <xs:complexType name="nominateUnEnclosureModel"> 
    <xs:sequence> 
    <xs:element name="orderNumber" type="xs:string" nillable="true" minOccurs="0" maxOccurs="unbounded" /> 
    </xs:sequence> 
    </xs:complexType> 
    这种只有一个element且maxOccurs是unbounded的这种,对应生成应该是数组,
    可本地代理生成为 [][] 二维数组了!生成的本地代理中:
    private string[][] nominateUnEnclosureModelField;
    改为:
    private string[] nominateUnEnclosureModelField;
    就OK了!
      

  13.   


    下面有个 Reference.cs 里搜:nominateUnEnclosureModelField