vb.net - VB .NET 通过字符串值访问类属性

标签 vb.net

我有一个更新数据库中客户端的函数。传入客户端对象以及应更新的字段/属性的字符串数组。我需要一种根据数组中的内容来访问客户端对象中的每个属性的方法。基本上,我正在寻找与此 javascript 等效的 VB .NET:

var fields = ["Firstname","Lastname","DOB"];
for(field in fields)
{
    var thisField = fields[field];
    client[thisField] = obj[thisField];
}

任何帮助将不胜感激!谢谢堆栈。

最佳答案

您可以使用Reflection去做这个。如果不了解有关数据对象如何设置的更多信息,我无法给您一个完美的示例,但总体思路如下:

Dim myPerson As New Person
myPerson.FirstName = "John"
myPerson.LastName  = "Doe"
myPerson.DOB       = #1/1/2000#

Dim myUpdates As New Dictionary(Of String, Object)
myUpdates.Add("FirstName", "Adam")
myUpdates.Add("LastName" , "Maras")
myUpdates.Add("DOB"      , #1/1/1990#)

Dim personType As Type = GetType(Person)

For Each kvp As KeyValuePair(Of String, Object) In myUpdates
    Dim propInfo As PropertyInfo = personType.GetProperty(kvp.Key)

    If propInfo IsNot Nothing Then
        propInfo.SetValue(myPerson, kvp.Value)
    End If
Next

关于vb.net - VB .NET 通过字符串值访问类属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4191076/

相关文章:

c# - .net 中各种语言的货币符号

mysql - VB NET - 查询 Mysql - 在哪里\

mysql - 在代码中访问DataTable中列的内容

c# - netTiers 如何传递数据?

vb.net - Selenium:使用 chrome 驱动程序将文件下载到特定文件夹

c# - 在没有看到 "Collection modified,enumeration cannot continue..."的情况下迭代集合的最佳方法

vb.net - 从 XSD 创建 dataset.designer.vb

c# - JSON 序列化器和 CSLA 对象

.net - 如何在 VB.NET 中获取 Caps Lock 的当前状态?

mysql - 我应该为 vb.net 应用程序使用什么 sql 查询语句?