• 用C#.NET调用Java开发的WebService传递int,double问题


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

    解决办法:

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

    同样的道理,用.NET提供WebService给JAVA调用时,如果是一个基本数据类型组成的对象,则会对该对象的非string属性同时生成两个属性,一般是这样的"属性××"、"属性××Specified"。如果不将“属性××Specified”设置为true的话,服务端得到的数据将是null。解决办法就是把“属性××Specified”设置为true或者把“属性××Specified”删掉。

    private void saveOrUpdate()
            {
                ChargeWSBeanClient client = new ChargeWSBeanClient();
                tblCharge tbl = new tblCharge();
                tbl.name = txtProjectName.Text;
                tbl.code = txtProjectCode.Text;
                tbl.remark = rtbRemark.Text;
                tbl.unit = txtUnit.Text;
                tbl.rate = numericUpDown.Value; //该字段为decimal类型
                tbl.rateSpecified = true;  //没有设置为true时,java服务端接收到的是null
             }
  • 相关阅读:
    Google Protocol Buffer
    你不知道的JSON的高效率用法
    ContentProvider深度探索
    Messenger实现Android IPC
    AIDL实现Android IPC
    多点触控
    Service通信详解
    并行执行的Service,以媒体转码成新格式为例
    相对完美的后台Service实现播放音乐功能
    用Dalvik指令集写个java类
  • 原文地址:https://www.cnblogs.com/lbangel/p/3200985.html
Copyright © 2020-2023  润新知