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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐