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。

  • 相关阅读:
    11月21日
    11月20日
    11月19日
    11月18日
    11月17日
    11月15日
    图文教程:在Mac上搭建Titanium的iOS开发环境
    经验
    IT术语的正确读法
    NSLog( @"%@", i );
  • 原文地址:https://www.cnblogs.com/hedianzhan/p/8990211.html
Copyright © 2011-2022 走看看