2011-06-22 28 views
0

我會盡力清楚地解釋一切。使用webmethod傳遞的對象會丟失一些值,但不是全部

調用一個WebMethod

[WebMethod] 
public Profile synchronize(string MID, DeviceUploadData data) 

對象DeviceUploadData有很多屬性時,有幾個人是數組的。我的問題是關於數組的具體問題。一旦它在webmethod端收到,它就會失去它的價值。

這裏面DeviceUploadData

Private data() As DataObject 
Public Property Data() As DataObject() 
    Get 
     Return Me.data 
    End Get 
    Set(value As DataObject()) 
     Me.data = value 
    End Set 
End Property 

屬性這是內部

<System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.225"), _ 
     System.SerializableAttribute(), _ 
     System.Diagnostics.DebuggerStepThroughAttribute(), _ 
     System.ComponentModel.DesignerCategoryAttribute("code"), _ 
     System.Xml.Serialization.XmlTypeAttribute([Namespace]:="http://somethingsomething")> _ 
     Public Class DataObject 
      Dim _calories As Double 
      Public Property Calories() As Double 
       Get 
        Return _calories 
       End Get 
       Set(value As Double) 
        _calories = value 
       End Set 
      End Property 
End Class 

的數據對象的對象這是對的webmethod的DeviceUploadData對象結束

public class DataObject 
    { 
     private List<DataObject> _data; 
     public List<DataObject> data 
     { 
      get { return _data; } 
      set { _data = value; } 
     } 
} 

這是數據對象在webmethod端

​​

因此,數據對象用數據填充,然後一旦傳遞,在另一端,一些DataObject屬性不再被填充。在本例中我沒有包含其他屬性。

+0

ASMX是一項傳統技術,不應該用於新開發。 WCF或ASP.NET Web API應該用於Web服務客戶端和服務器的所有新開發。一個暗示:微軟已經在MSDN上退役了[ASMX Forum](http://social.msdn.microsoft.com/Forums/en-US/asmxandxml/threads)。 –

回答

1

解決了!所有參數和方法必須在客戶端和Web對象中完全相同。

我想這很難在我的例子中看到,因爲我已經將它們標記爲相同。

希望這可以幫助那裏的一些人。

相關問題