Web Services aspx类的属性不保留默认值

时间:2017-06-07 20:27:05

标签: asp.net vb.net visual-studio-2012 .net-4.5

我在vb.net中制作aspx web服务。我收到一个对象数组参数,让框架担心转换验证,你可以看到

   <ScriptMethod(ResponseFormat:=ResponseFormat.Json, XmlSerializeString:=False)> _
       <WebMethod(True)> _
    Public Function insertarUnidad(ByVal unidades() As unidad) As String

我有一个公共类定义

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

事实证明,当我进行调试时,对象数组并没有像placas这样的某些属性的默认值,而是有&#34; 0&#34; value哪个是String数据类型的默认值。但不知何故,在属性nombre它确实有默认值&#34;我不是空的&#34;。

如何使用我放入属性的默认值而不会丢失它?

谢谢,抱歉我的英语不好。

更新

aspx在.net4.5和web应用程序上工作得很好,但在控制台应用程序中没有工作,因为控制台应用程序在net4.0上 它得到修复,将框架目标从4.5更改为4.0, 即使控制台应用程序在4.5框架中,aspx也能完美运行。

1 个答案:

答案 0 :(得分:1)

即使是“”空字符串也会覆盖这些值。但这是属性的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