通过反射遍历Model对象获得属性与赋值。

本文介绍了一种利用反射遍历属性的方法,解决大量属性赋值时代码冗长的问题。通过示例演示了如何获取对象属性名称及使用GetValue()和SetValue()方法进行属性值的读取和赋值,提高开发效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天开发中遇到一个问题,一个model有80多个属性(字段),现需要给这些属性赋值。如果使用判断取一一匹配的话,估计需要几百行代码。那么有没有很好的办法能够自动匹配属性并赋值呢?

答案肯定是有的——反射遍历属性。

我这里建了一个控制太应用程序进行测试,并建了一个Student的model类,并给了3个字段。

Student

    /// <summary>
    /// 测试用的model,暂且给他3个字段
    /// </summary>
    public class Student
    {
        public string studentName { get; set; }
        public int age { get; set; }
        public string className { get; set; }
    }

获得Student对象属性名称

 PropertyInfo[] propertys = student.GetType().GetProperties();//获得student对象的所有属性

我们来测试一下数组propertys中有没有存下对象的属性

通过遍历propertys数组打印,可以看到数组的长度为3,属性的名字和数据类型也正好与Student中的属性一致。

在开发中我们致需要获得对象属性的名称,并不需要属性的数据类型。

通过GetValue()方法取出对象属性的值

通过SetValu()方法给对象赋值

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值