/// <summary>
   /// 反射赋值
   /// </summary>
   public class ObjectReflection
   {
       public static PropertyInfo[] GetPropertyInfos(Type type)
       {
           return type.GetProperties(BindingFlags.Public | BindingFlags.Instance);
       }
       /// <summary>
       /// 实体属性反射
       /// </summary>
       /// <typeparam name="S">赋值对象</typeparam>
       /// <typeparam name="T">被赋值对象</typeparam>
       /// <param name="s"></param>
       /// <param name="t"></param>
       public static void AutoMapping<S, T>(S s, T t)
       {
           PropertyInfo[] pps = GetPropertyInfos(s.GetType());
           Type target = t.GetType();

foreach (var pp in pps)
           {
               PropertyInfo targetPP = target.GetProperty(pp.Name);
               object value = pp.GetValue(s, null);

if (targetPP != null && value != null)
               {
                   targetPP.SetValue(t, value, null);
               }
           }
       }
   }
用法  ObjectReflection.AutoMapping(model, vmModel);

这里将model属性的值赋值给了具体相同属性名称的vmModel。

C# 通过反射为一个对象赋值的更多相关文章

  1. C# 反射给对象赋值遇到的问题——类型转换

    反射给对象赋值遇到的问题——类型转换 给一个对象属性赋值可以通过PropertyInfo.SetValue()方式进行赋值,但要注意值的类型要与属性保持一致.    创建对象实例的两种方法: 1. 1 ...

  2. 反射给对象赋值遇到的问题——类型转换[转http://blog.csdn.net/xiaohan2826/article/details/8536074]

    发布时间:2012-10-25 10:49浏览次数:225 给一个对象属性赋值可以通过PropertyInfo.SetValue()方式进行赋值,但要注意值的类型要与属性保持一致.   创建对象实例的 ...

  3. c# net 使用反射为对象赋值

    public T Bson2T(MongoDB.Bson.BsonDocument bson) { T t = default(T); //获取T类中的所有属性 PropertyInfo[] Tpro ...

  4. js 把一个对象赋值给另一个对象会指向同一个内存地址

    先看一段代码: var arr1 = [1,2,3]; var arr2 = arr1; arr2.push(4); console.log(arr1)//[1,2,3,4] 为什么会输出 的是[1, ...

  5. C#中使用反射遍历一个对象属性和值以及百分数

    对某个类的实例化对象, 遍历获取所有属性(子成员)的方法(采用反射): using (var context = new YZS_TRAEntities()) { ).FirstOrDefault() ...

  6. Web 使用反射获得一个对象的所有get方法

    问题描述: 由于想知道request中包含哪些getter方法,就想通过反射进行遍历,然后输出,结果异常,异常信息: 问题代码: try { outGetter(request); } catch ( ...

  7. C#通过反射给对象赋值

    class Program { static void Main(string[] args) { UserSearchRequest model = new UserSearchRequest() ...

  8. JavaScript 反射和属性赋值!

    function Antzone(){ this.webName="蚂蚁部落"; this.age=6; } Antzone.prototype={ address:"青 ...

  9. Java 使用反射给属性赋值

    package com.nf147.manage.spring; import java.lang.reflect.Field; public class Cat { private String n ...

随机推荐

  1. Jmeter压测问题_Non HTTP response code: org.apache.http.conn.ConnectTimeoutException

    负载机压测,线程500,服务器根本无压力,负载机本身发的请求都是失败的 Sample result如下: Thread Name: 考勤(考勤提交) 1-134 Sample Start: 2018- ...

  2. 人见人爱A+B(杭电2033)

    /*人见人爱A+B Problem Description HDOJ上面已经有10来道A+B的题目了,相信这些题目以前是大家的最爱,希望今天的这个A+B能给大家带来好运.也希望这个题目能唤起大家对AC ...

  3. 动手分析安卓仿QQ联系人列表TreeView控件

    因项目需要需要用到仿QQ联系人列表的控件样式,于是网上找到一个轮子(https://github.com/TealerProg/TreeView),工作完成现在简单分析一下这个源码.   一. 需要用 ...

  4. Cracking the Coding Interview 6.5

    There is a building of 100 floors. If an egg drops from the Nth floor or above, it will break. If it ...

  5. idea使用maven搭建ssm框架实现登陆商品增删改查

    创建项目->maven->webapp->输入坐标->完成. pom.xml <project xmlns="http://maven.apache.org/P ...

  6. ios 指纹识别解锁

    :添加LocalAuthentication.framework框架 :实现过程 #import "ViewController.h" #import <LocalAuthe ...

  7. 关于17个Cr的430采购的注意事项 430F

    430F不锈钢是在430钢上加上易切削性能的钢种.用于自动车床.螺栓和螺母等.430LX在430钢中添加Ti或Nb.降低C含量,改善了加工性能的和焊接性能.用于热水罐.供热水系统.卫生器具.家庭用耐用 ...

  8. 【PostgreSQL-9.6.3】创建、修改、删除数据库

    1.创建数据库 create database database_name; 2.修改数据库的名称 alter database database_name rename to new_databas ...

  9. Linux之tar.gz file

    A tarball (tar.gz file) is compressed tar archive. The tar program provides the ability to create ta ...

  10. 【转】linux命令

    shell实例手册 0 说明{ 手册制作: 雪松    更新日期: 2015-11-02 欢迎系统运维加入Q群: 198173206  # 加群请回答问题    欢迎运维开发加入Q群: 3655344 ...