Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用webmethod传递的对象会丢失一些值,但不是全部值_C#_.net_Vb.net_Web Services_Asmx - Fatal编程技术网

C# 使用webmethod传递的对象会丢失一些值,但不是全部值

C# 使用webmethod传递的对象会丢失一些值,但不是全部值,c#,.net,vb.net,web-services,asmx,C#,.net,Vb.net,Web Services,Asmx,我会尽力把一切解释清楚 调用webmethod时 [WebMethod] public Profile synchronize(string MID, DeviceUploadData data) 对象DeviceUploadData有许多属性,其中一些是数组的。我的问题是关于数组的。一旦在webmethod端接收到它,它就会失去它的价值 这是DeviceUploadData中的属性 Private data() As DataObject Public Property Data() As

我会尽力把一切解释清楚

调用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
这是内部的DataObject对象

 <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

因此,数据对象填充有数据,然后一旦传递到另一端,一些数据对象属性就不再填充。我没有在这个例子中包括其他属性。

解决了它!在客户端和web对象中,所有参数和方法的名称必须完全相同

我想这很难在我的例子中看到,因为我已经给他们贴上了相同的标签


希望这能帮助一些人。

ASMX是一项遗留技术,不应用于新的开发。WCF或ASP.NET Web API应用于Web服务客户端和服务器的所有新开发。一个提示:微软已经在MSDN上退出了。
public class DataObject
    {
        private List<DataObject> _data;
        public List<DataObject> data
        {
            get { return _data; }
            set { _data = value; }
        }
}
public class DataObject
    {
        #region class variables
        double _calories;
        public double Calories
        {
            get { return _calories; }
            set { _calories = value; }
        }
}