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