我正在構建一個具有公共屬性(MyDTOItem)的本質上是DTO對象(dtDTOItem)的代碼注意:在我的代碼中,Get和Set實際上是實際的代碼(我爲例子剝離了它)。VB.NET - 自動初始化對象類型的擴展屬性
我遇到的問題是在Page_Load事件中。當我設置DTO對象的.Member1屬性時,Get代碼運行,而不是Set,因此DTO ibject屬性.Member1永遠不會被分配。
我發現如果我將代碼(MyDTOItem = New dtDTOItem)添加到Page_Load事件中,它會正確設置該值。我想弄清楚的是如何初始化屬性對象而不必明確地進行。它必須是擴展屬性,因爲我有自定義的Get和Set代碼。
預先感謝您。
Public Property MyDTOItem As dtDTOItem
Get
End Get
Set(value As dtDTOItem)
End Set
End Property
<DataContract(), Serializable()> _
Public Class dtDTOItem
<DataMember()> _
Property Member1 As String = ""
<DataMember()> _
Property Member2 As String = ""
<DataMember()> _
Property Member3 As String = ""
End Class
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
MyDTOItem.Member1 = "temp string"
End Sub
你推薦哪個事件我在做? – wavedrop 2012-02-15 17:51:32
有趣的是,如果我使用自動屬性,那麼我可以創建我的實例: – wavedrop 2012-02-15 17:55:10
Public Property MyDTOItem As dtDTOItem = New dtDTOItem的作品,但只要我擴展屬性,我不會「欺騙」,必須創建某個地方的對象。 – wavedrop 2012-02-15 17:55:50