[英]Access Property of a child class from Parent class
問題:
我已經從JSON制作了一個類,該類是由外部公司提供的,用於向其系統發送訂單
部分課程:
Public Class SalesOrder
Public Class Field
Public Property Name() As String
Get
Return m_Name
End Get
Set(value As String)
m_Name = value
End Set
End Property
Private m_Name As String
Public Property FieldType() As String
Get
Return m_FieldType
End Get
Set(value As String)
m_FieldType = value
End Set
End Property
Private m_FieldType As String
End Class
End Class
案件:
假設我通過使用JSON提取txt文件並從那里解析該類來創建SalesOrder類的新實例,現在我想訪問Field類內部的Name屬性,以便對其進行編輯。 如何從SalesOrder類的新實例執行此操作? 每當我嘗試訪問它時,它都會告訴我它是一種類型,不能用作表達式
例:
Dim sOrder As New SalesOrder
sOrder = JsonConvert.DeserializeObject(Of SalesOrder)(File.ReadAllText("C:\Users\Something\Documents\Visual Studio 2010\Projects\SomethingElse\WebApplication1\OrderDefinitionJSON.txt"))
Dim FieldName As String = SOrder.Field.Name
這將導致sOrder.Field發生異常
編輯:
JSON格式
這是我嘗試讀取的JSON的一部分:
{
"BookDate": "2016-12-18T10:39:05.276Z",
"BusinessObject": "SO1",
"Table": {
"Definition": {
"Name": "SO_HDR",
"Fields": [{
"Name": "RowId",
"FieldType": "C"
}]
}
}
}
謝謝!
您的類SalesOrder不包含Field類的等距。 如果要設置屬性,則必須向SalesOrder類添加屬性:
Public Class SalesOrder
Public SalesField as Field
End Class
Public Class Field
Public Property Name() As String
Get
Return m_Name
End Get
Set(value As String)
m_Name = value
End Set
End Property
Private m_Name As String
Public Property FieldType() As String
Get
Return m_FieldType
End Get
Set(value As String)
m_FieldType = value
End Set
End Property
Private m_FieldType As String
End Class
現在,如果您正確反序列化並且SalesField不是零,則可以:
Dim sOrder As New SalesOrder
sOrder = JsonConvert.DeserializeObject(Of SalesOrder)(File.ReadAllText("C:\Users\Something\Documents\Visual Studio 2010\Projects\SomethingElse\WebApplication1\OrderDefinitionJSON.txt"))
Dim FieldName As String = SOrder.Field.Name
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.