码迷,mamicode.com
首页 > Windows程序 > 详细

C# 反射 循环属性、字段赋值

时间:2020-05-14 22:29:57      阅读:104      评论:0      收藏:0      [点我收藏+]

标签:dem   source   runtime   tar   rdo   方法   http   集合   stat   

private static void CopyValueToTarget<T>(T source, T target) where T:class
{
    Type type = source.GetType();
    var fields= type.GetRuntimeFields().ToList();
    foreach(var field in fields)
    {
        field.SetValue(target, field.GetValue(source));
    }
    
    var properties = type.GetRuntimeProperties().ToList();
    foreach (var property in properties)
    {
        property.SetValue(target, property.GetValue(source));
    }
}
//测试
Fish fish = new Fish() { Name = "ccc", Weight = (decimal)9.7 };
Fish copyFish = new Fish();
CopyValueToTarget<Fish>(fish, copyFish);

GetRuntimeFields和GetFields

根据官方说法,
GetRuntimeFields是检索表示指定类型定义的所有字段的集合。
GetFields是返回当前 Type 的所有公共字段。
GetRuntimeProperties和GetProperties、GetRuntimeEvents和GetEvents等方法可以类推。

示例代码

ReflectionDemo

C# 反射 循环属性、字段赋值

标签:dem   source   runtime   tar   rdo   方法   http   集合   stat   

原文地址:https://www.cnblogs.com/Lulus/p/12886502.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!