C# .NET VS2010加载Web服务 传参失败

最近在做一个关于支付相关的项目,我们C#端是调用Java写的接口,调用过程中出现了一系列的问题,主要还是传参,以下是详细内容:
   该问题的产生背景:

.net向webservice传double、int、datetime到服务器,而得到的返回值为null的情况,比如用C#.NET调用Java开发的WebService时,先在客户端封装的带有int属性的对象,当将该对象传到服务器端时,服务器端可以得到string类型的属性值,却不能得到int类型、double和DateTime类型的值(在服务端得到的均为null)。

解决办法:

VS2005封装WebService引用时,如果WebService发布的是一个基本数据类型组成的对象,则会对该对象的非string属性同时生成两个属性,一般是这样的"属性××"、"属性××Specified"。而"属性名Specified"是一个bool类型,只有这个属性被设置成true时,"属性××"的值才会被序列化成xml传递。

综上所述,参数增多是VS2005为了解决C# .NET调用JAVA开发的Web服务过程中服务端接收的参数为NULL的BUG。

故参数增多不会影响到程序的正确运行,传入的参数基本上多就是一些boolean(布尔);全部传true即可得到正确的结果。

示例代码段如下:

1.设置Specified属性

        /// <summary>
        /// 设置Specified属性
        /// </summary>
        /// <param name="req"></param>
        public static void SetSpecified(OrderReq req)
        {
            req.pageSizeSpecified = true;
            req.pageNumSpecified = true;
            req.orderStatusSpecified = true;
            req.orderTypeSpecified = true;
            req.transactionMoneySpecified = true;
            req.userIdSpecified = true;
            req.transferTypeSpecified = true;
        }

2.调用接口

       <pre class="csharp" name="code">        public bool RentReserve(OrderReq req, ref string order)
        {
            //生成订单号
            var orderNo = WsHelper.CreateOrderNum();
            req.orderNo = orderNo;
            order = orderNo;
            //添加定金宝订单
            var result = false;
            var resultSpecified = false;
            WsHelper.SetSpecified(req);
            _ws.addEarnestOrder(req, out result, out resultSpecified);
        }

设置XXSpecified属性之后,参数能如期的传递了。

C# .NET VS2010加载Web服务 传参失败

时间: 2024-08-12 20:38:09

C# .NET VS2010加载Web服务 传参失败的相关文章

flex 与 加载的swf传参,获取文档类

public function setPicData(parmProductNameId:int):void{ trace("swf里面的方法setFlipBookData被调用,接收的参数图片数组::" + parmProductNameId); productNameId = parmProductNameId; return; }// end function 1.swf 的文档类里面,写好flex 调用的接口方法: 2. flex加载swf 文件. 获取到swf的文档类,直接调

华为Quidway S2326TP-PWR-EI初始化&amp;升级&amp;加载web页面

<HW-R1>reset saved-configuration //清空配置This will delete the configuration in the flash memory.The device configurations will be erased to reconfigure.Are you sure? (y/n)[n]:y //是否清空(是)Clear the configuration in the device successfully.<HW-R1>r

PHP UEditor富文本编辑器 显示 后端配置项没有正常加载,上传插件不能正常使用

UEditor是由百度web前端研发部开发所见即所得富文本web编辑器,具有轻量,可定制,注重用户体验等特点,开源基于MIT协议,允许自由使用和修改代码... 问题描述 我的编辑器在本地测试的时候没问题,但是上传到服务器上之后,上传图片.视频等文件的时候出错,显示后端配置项没有正常加载,上传插件不能正常使用!如图: 解决方法 可以测试一下 php 代码是否正确执行,在浏览器打开 ueditor/controller.php 对应的路径,看看是否有下面的返回值. { state: "请求地址出错&

Spring学习(一)tomcat加载web.xml、以及项目集成Spring支持

tomcat容器加载web.xml 一. 1 .启动一个 WEB 项目的时候, WEB 容器会去读取它的配置文件 web.xml ,读取 <listener> 和 <context-param> 两个结点. 2 .紧急着,容创建一个 ServletContext ( servlet 上下文),这个 web 项目的所有部分都将共享这个上下文. 3 .容器将 <context-param> 转换为键值对,并交给 servletContext . 4 .容器创建 <li

Android ListView分页加载(服务端+android端)Demo

Android ListView分页加载功能 在实际开发中经常用到,是每个开发者必须掌握的内容,本Demo给出了服务端+Android端的两者的代码,并成功通过了测试. 服务端使用MyEclipse,Android端使用Eclipse. 实现效果图: 服务端一共100条数据,共分四页,每页有25条数据. 源代码: 服务端: 需要导入图中这几个jar包. 在运行Android端代码前,需要开启服务端: 下面先给出服务端的代码: 类EmpDataSource: package com.android

SCOM 2012 R2应用程序事务监视无法加载Web Recorder插件

在配置SCOM 2012 R2的应用程序事务性监视的时候,发生在捕获网页的时候无法加载web recorder控件,经过检查IE的这个控件已经被我手动启用了,如图. 而且当前也是用管理员身份登录的,如图. 后来在网上找到了下面的解决方案. 这个方案是一个针对当前用户的一个修复的方案,为了避免原文的链接失效,现在把文章的内容附在下面,方便大家查看. =========================================================== Issue on record

tomcat加载web.xml

这几天看tomcat的源码,疑问很多,比如之一“ tomcat 怎么加载 web.xml”,下面是跟踪的过程,其中事件监听器有一个观察者模式,比较好.记录下来以供参考 1 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>tomcat load web.xml&g

(十九)ArcGIS JS 加载WMS服务(超图示例)

前言 在工作中,需要在ArcGIS API for JavaScript中加载超图服务,因为超图的rest服务只可以用于Leaflet .openlayers3 (with MVT) .MapboxGL .Tianditu.com,在使用ArcGIS API是无法加载超图的rest服务的(我认知的).    在超图的superMap iServer中可以发布符合OGC规则的WMS服务,这时,我们可以通ArcGIS API加载WMS服务的形式加载超图服务. 加载WMS服务要点 visibleLay

(二十)ArcGIS JS 加载WMTS服务(超图示例)

前言 在前一篇中说到我们可以通过加载WMS服务解决用ArcGIS API加载超图发布的服务,但是WMS服务在加载效率上是低于切片服务的,加上超图的IServer,无力吐槽,所以,在加载速度的要求下,切片的WMTS服务更符合要求. 加载WMTS服务的要点 identifier:图层标识tileMatrixSet:切片矩阵标识extent:加载范围spatialReference:控件参考version:WMTS服务版本号dpi:平铺方案的dpilods:定义切片方案的一系列细节层次. 实现效果 实