用C#.NET调用Java开发的WebService时,先在客户端封装的带有int属性的对象,当将该对象传到服务器端时,服务器端能够获得string类型的属性值,却不能获得int类型、double和DateTime类型的值(在服务端获得的均为null) 解决办法: VS2005封装WebService引用 html
用C#.NET调用Java开发的WebService时,先在客户端封装的带有int属性的对象,当将该对象传到服务器端时,服务器端能够获得string类型的属性值,却不能获得int类型、double和DateTime类型的值(在服务端获得的均为null) java
解决办法: 服务器
VS2005封装WebService引用时,若是WebService发布的是一个基本数据类型组成的对象,则会对该对象的非string属性同时生成两个属性,通常是这样的"属性××"、"属性××Specified"。而"属性名Specified"是一个bool类型,只有这个属性被设置成true时,"属性××"的值才会被序列化成xml传递。 spa
一样的道理,用.NET提供WebService给JAVA调用时,若是是一个基本数据类型组成的对象,则会对该对象的非string属性同时生成两个属性,通常是这样的"属性××"、"属性××Specified"。若是不将“属性××Specified”设置为true的话,服务端获得的数据将是null。解决办法就是把“属性××Specified”设置为true或者把“属性××Specified”删掉。 .net
http://msdn.microsoft.com/zh-cn/library/system.xml.xmlattribute.specified(VS.80).aspx xml
.NET Framework 类库 htm
XmlAttribute.Specified 属性 对象
获取一个值,该值指示是否显式设置了属性值。 blog
命名空间:System.Xml ci
程序集:System.Xml(在 system.xml.dll 中)
属性值
若是在原始实例文档中显式地为该属性给定一个值,则为 true;不然为 false。false 值指示该属性的值来自 DTD。
备注
该属性是由实现负责的,而不是用户。若是用户更改该属性的值(即便它最后与默认/固定值具备相同的值),Specified 标志就会自动转为 true。若要从新将该属性指定为 DTD 中的默认/固定值,则用户必须删除该属性。而后,实现提供一个新属性,其 Specified 设置为 false,并具备默认/固定值(若是存在的话)。
摘要:
若是属性具备文档中的分配值,则 Specified 为 true,而且该值是分配值。
若是属性没有文档中的分配值,而具备 DTD 中的默认/固定值,则 Specified 为 false,该值是 DTD 中的默认/固定值。
不然,该属性不出如今文档的结构模型中