zoukankan      html  css  js  c++  java
  • C# 通过反射为一个对象赋值

    /// <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。

  • 相关阅读:
    欧拉函数模板
    Django Views Decorator
    Anaconda3 安装报错 bunzip2: command not found
    Windows 错误 0x80070570
    GitHub报错error: bad signature
    failed to push some refs to 'git@github.com:RocsSun/mytest.git
    更新GitHub的仓库
    Git连接GitHub
    Git的初始化设置
    Git的选项参数
  • 原文地址:https://www.cnblogs.com/hedianzhan/p/8990211.html
Copyright © 2011-2022 走看看