class 的 Web 服务 aspx 属性 不保留默认值
Web Services aspx Property of class doesn't keep default value
我正在 vb.net 中制作 aspx 网络服务。我收到一个对象数组参数,让框架担心转换验证,如您所见
<ScriptMethod(ResponseFormat:=ResponseFormat.Json, XmlSerializeString:=False)> _
<WebMethod(True)> _
Public Function insertarUnidad(ByVal unidades() As unidad) As String
我有一个 public class 定义
Public Class unidad
Public Property id_unidad As String
Public Property nombre As String ="I'm Not Empty"
Public Property placas As String = "N"
END Class
事实证明,当我调试时,Object 数组没有某些 属性s 的默认值,例如 placas,而是它们具有“0”值,这是 String 的默认值数据类型。但不知何故,在 属性 名称中它确实具有默认值 "I'm Not Empty".
如何使用我放入属性中的默认值而不丢失它?
谢谢,抱歉我的英语不好。
更新
aspx 在 .net4.5 上,从网络应用程序它运行良好,但在控制台应用程序中无法运行,因为控制台应用程序在 net4.0 上
它得到修复,将框架目标从 4.5 更改为 4.0,
即使控制台应用程序在 4.5 框架中,aspx 也能完美运行。
即使是“”空字符串也会覆盖这些值。但这是属性的 Get 和 Set 的一个很好的用例!
Public Class unidad
Private _nombre as string
Private _placas as string
Public Property id_unidad As String Public Property placas
Get
Return _placas
End Get
Set(ByVal value As String)
If value = "0" then
_placas = "N"
else
_placas = value
end if
End Set
End Property
Public Property nombre
Get
Return _nombre
End Get
Set(ByVal value As String)
If value = "0" then
_nombre = "I'm Not Empty"
else
_nombre = value
end if
End Set
End Property
End Class
'Your if statements may need changed
我正在 vb.net 中制作 aspx 网络服务。我收到一个对象数组参数,让框架担心转换验证,如您所见
<ScriptMethod(ResponseFormat:=ResponseFormat.Json, XmlSerializeString:=False)> _
<WebMethod(True)> _
Public Function insertarUnidad(ByVal unidades() As unidad) As String
我有一个 public class 定义
Public Class unidad
Public Property id_unidad As String
Public Property nombre As String ="I'm Not Empty"
Public Property placas As String = "N"
END Class
事实证明,当我调试时,Object 数组没有某些 属性s 的默认值,例如 placas,而是它们具有“0”值,这是 String 的默认值数据类型。但不知何故,在 属性 名称中它确实具有默认值 "I'm Not Empty".
如何使用我放入属性中的默认值而不丢失它?
谢谢,抱歉我的英语不好。
更新
aspx 在 .net4.5 上,从网络应用程序它运行良好,但在控制台应用程序中无法运行,因为控制台应用程序在 net4.0 上 它得到修复,将框架目标从 4.5 更改为 4.0, 即使控制台应用程序在 4.5 框架中,aspx 也能完美运行。
即使是“”空字符串也会覆盖这些值。但这是属性的 Get 和 Set 的一个很好的用例!
Public Class unidad
Private _nombre as string
Private _placas as string
Public Property id_unidad As String Public Property placas
Get
Return _placas
End Get
Set(ByVal value As String)
If value = "0" then
_placas = "N"
else
_placas = value
end if
End Set
End Property
Public Property nombre
Get
Return _nombre
End Get
Set(ByVal value As String)
If value = "0" then
_nombre = "I'm Not Empty"
else
_nombre = value
end if
End Set
End Property
End Class
'Your if statements may need changed