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”请高手指教。第一次碰见实例化时出错。茫然了……
在添加引用内已改名为:rakutan
其中有个类为:OrderApiService本因实例化:使用其中若干方法和属性。rakutan.OrderApiService port = new rakutan.OrderApiService();
此时出错!错误为:无法生成临时类(result=1)。
error CS0030: 无法将类型“string[]”转换为“string”请高手指教。第一次碰见实例化时出错。茫然了……
解决方案 »
- 网络出现问题的时候把数据保存在缓存中,网络连接以后上传到服务器怎么实现?
- ThreadPool 与 treeView 递归
- C#新手上路
- C#里面可不可以改变button的外形 就是把按钮搞的个性点。
- C#2005连接数据库出错:"conn.ServerVersion"引发的“System.InvalidOperationException”类型的异常
- 关于Vs2008的单元测试的问题
- 将Windows服务的“允许服务与桌面交互”设置为true
- 有关Hashtable
- 菜单问题
- 100分求教如何用GDI+在Windows CE.Net的 Form上实现简单的持续流动的动画效果。
- c#批量插入却没有数据,
- 问个Int16与Int32区别的问题
添加web引用
然后将地址填入
找到类的所在命名空间
然后可以实例化了
添加service引用
添加是可以测试下
然后将地址填入
找到类的所在命名空间
然后可以实例化了
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);//返回状态
}
}
}
这是我刚刚试过的 有返回值呢
上次我有个服务没有调用成呢,也是这个高手指点的呢
不过,我没有这么写,直接就是new里面的类,然后,调用里面的方法呢。
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);
}
}
Message=Unable to generate a temporary class (result=1).
error CS0030: Cannot convert type 'string[]' to 'string' Source=System.Xml
StackTrace:
尝试下用 svcutil.exe 生成客户端代理看看。
如果是
VS.net 2008 SP1,VS.net 2010【添加服务引用】是采用WCF引用
.Net 3.5或者.Net 4对Java WebService解析也不一样,所以可以成功估计
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>
<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了!
下面有个 Reference.cs 里搜:nominateUnEnclosureModelField