gpt4 book ai didi

.net - 自定义属性的 VB.net 值

转载 作者:行者123 更新时间:2023-12-02 01:22:32 24 4
gpt4 key购买 nike

我是自定义属性的新手,所以我想知道是否可以获取属性的值。我的类中使用自定义属性的属性示例是:

Private mFiller As String
<Position(378), Length(34), DataType("A"), ParticipantDependant("P/D"), RequiredProperty("Required"), Format("Blank")> _
Public Property Filler() As String
Get
Return mFiller
End Get
Set(ByVal value As String)
mFiller = value
End Set
End Property

我正在尝试获取这些属性的值(即获取位置 = 378、长度 = 34 等)。我开始的循环如下所示:

Dim gwlImport As New ClientGWLImport
Dim properties() As PropertyInfo = gwlImport.GetType.GetProperties
Dim tmpInfo As PropertyInfo
For Each tmpInfo In properties
Debug.Print("Attributes for : " & tmpInfo.Name)
For Each tmpAttribute As Object In tmpInfo.GetCustomAttributes(True)
Debug.Print(tmpAttribute.ToString)
Next tmpAttribute
Next tmpInfo

这让我获得了所有属性的名称,但我不确定如何获取这些值。有什么想法吗?

干杯,

瑞恩

最佳答案

您需要知道属性的类型。

例如:

Dim posAtt As PositionAttribute 
posAtt = CType(tmpInfo.GetCustomAttributes(GetType(PositionAttribute), True)(0), PositionAttribute)
'Use some property of posAtt

顺便说一下,您不需要创建新的 ClientGWLImport 来获取其 Type 对象。
相反,你可以写

Dim properties() As PropertyInfo = GetType(ClientGWLImport).GetProperties()

关于.net - 自定义属性的 VB.net 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1940989/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com