C# 使用webmethod传递的对象会丢失一些值,但不是全部值
我会尽力把一切解释清楚 调用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]
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; }
}
}