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。

  • 相关阅读:
    软件开发术语
    网络规划与设计
    MPLS LDP协议
    MPLS 基础
    CallAfter
    LongRunningTasks
    Non-blocking GUI
    WorkingWithThreads
    Python: Running Ping, Traceroute and More
    wxPython and Threads
  • 原文地址:https://www.cnblogs.com/hedianzhan/p/8990211.html
Copyright © 2011-2022 走看看