zoukankan      html  css  js  c++  java
  • 用C#.NET调用Java开发的WebService传递int,double问题,出现java无法获得值!

    https://www.cnblogs.com/zhbsh/archive/2013/04/22/3035477.html

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

    用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”删掉。

    资料:http://msdn.microsoft.com/zh-cn/library/system.xml.xmlattribute.specified(VS.80).aspx

    .NET Framework 类库

    XmlAttribute.Specified 属性

    获取一个值,该值指示是否显式设置了属性值。

    命名空间:System.Xml

    程序集:System.Xml(在 system.xml.dll 中)

    属性值

    如果在原始实例文档中显式地为该属性给定一个值,则为 true;否则为 false。false 值指示该属性的值来自 DTD。

    备注

    该属性是由实现负责的,而不是用户。如果用户更改该属性的值(即使它最后与默认/固定值具有相同的值),Specified 标志就会自动转为 true。若要重新将该属性指定为 DTD 中的默认/固定值,则用户必须删除该属性。然后,实现提供一个新属性,其 Specified 设置为 false,并具有默认/固定值(如果存在的话)。

    摘要:

    如果属性具有文档中的分配值,则 Specified 为 true,并且该值是分配值。

    如果属性没有文档中的分配值,而具有 DTD 中的默认/固定值,则 Specified 为 false,该值是 DTD 中的默认/固定值。

    否则,该属性不出现在文档的结构模型中

  • 相关阅读:
    【Leetcode】23. Merge k Sorted Lists
    【Leetcode】109. Convert Sorted List to Binary Search Tree
    【Leetcode】142.Linked List Cycle II
    【Leetcode】143. Reorder List
    【Leetcode】147. Insertion Sort List
    【Leetcode】86. Partition List
    jenkins 配置安全邮件
    python 发送安全邮件
    phpstorm 同步远程服务器代码
    phpUnit 断言
  • 原文地址:https://www.cnblogs.com/LuoEast/p/9212258.html
Copyright © 2011-2022 走看看