用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。
備註