首页 > 解决方案 > 从 With VB.net 中引用一个类

问题描述

我已经调用了我希望将其作为一个整体返回到 JSONConvert 方法以序列化 JSON 的 clientdetails。

我创建了一个具有我需要的属性类型(TextA,TextB)等的类。

我可以同时引用 TransactionCount 和 TransactionType,因为它们是 ClientDetails 的一部分,但是当我尝试引用 Transactions 的 TextA 时,它指出 TextA 不是 ClientDetails 的成员 - 我知道这就是我明确声明 .Transactions.TextA 的原因。

如果我在一个新变量下单独声明事务,那么我可以引用它们,但是我需要在 ClientDetails 下声明它们以传递给序列化程序。

谁能指出我在这里做错了什么?还在学习。

Public Class JSON

Public Shared Function SerializeObject()

    Dim clientdetails As New ClientDetails() With {.TransactionCount = "1", .TransactionType = "Q", .Transactions.TextA} 'Unable to Refer to any Property of Transactions.

    'Dim Trans As New Transactions()

    'Trans.TextA= "Test"

    Dim output As String = JsonConvert.SerializeObject(clientdetails, Newtonsoft.Json.Formatting.Indented)

    Return output
End Function

End Class

Public Class ClientDetails
Public Property Transactions As New Transactions()
Public Property [TransactionType] As String
Public Property [TransactionCount] As Integer
End Class

Public Class Transactions

Public Property [RecordID] As String
Public Property No As String
Public Property TextA As String
Public Property TextB As String
Public Property Initial As String
Public Property Flag As String
Public Property Sex As String
Public Property Area As String
Public Property Type As String
Public Property IDNO As String

End Class

标签: vb.netinitialization

解决方案


您可以使用以下语法:

Dim clientdetails As New ClientDetails() With {.TransactionCount = "1", .TransactionType = "Q", .Transactions = New Transactions() With {.TextA = "Test"}}

或者更易读的代码:

Dim trans As New Transactions
trans.TextA = "Test"

Dim clientDetails As New ClientDetails()

With clientDetails
    .TransactionCount = "1"
    .TransactionType = "Q"
    .Transactions = trans
End With

推荐阅读