示例#1
0
 public static void Clone <C, T>(this C clone, T value) where C : class where T : class
 {
     foreach (PropertyInfo info in typeof(C).GetProperties())
     {
         if (info.CanRead && info.CanWrite)
         {
             value.SetPropertyValue(info.Name, ReflectorHelper.GetPropertyValue(clone, info.Name));
         }
     }
     foreach (FieldInfo info2 in typeof(C).GetFields(BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance))
     {
         value.SetPropertyValue(info2.Name, ReflectorHelper.GetPropertyValue(clone, info2.Name));
     }
 }
示例#2
0
        public static C Clone <T, C>(this T cloneValue) where C : class, new()
        {
            C instance = Activator.CreateInstance <C>();

            foreach (PropertyInfo info in typeof(T).FindPropertys())
            {
                if (info.CanRead && info.CanWrite)
                {
                    instance.SetPropertyValue(info.Name, ReflectorHelper.GetPropertyValue(cloneValue, info.Name));
                }
            }
            foreach (FieldInfo info2 in typeof(T).GetFields(BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance))
            {
                instance.SetPropertyValue(info2.Name, ReflectorHelper.GetPropertyValue(cloneValue, info2.Name));
            }
            return(instance);
        }
示例#3
0
 public static PropertyInfo[] FindPropertys(string assemblyName, string typeName, BindingFlags bindingAttr)
 {
     return(ReflectorHelper.FindPropertys(assemblyName, typeName, bindingAttr));
 }
示例#4
0
 public static PropertyInfo[] FindPropertys(string assemblyName, string typeName)
 {
     return(ReflectorHelper.FindPropertys(assemblyName, typeName));
 }
示例#5
0
 public static object ExecuteMethod(string assemblyName, string type, string methodname, object[] args)
 {
     return(ReflectorHelper.ExecuteMethod(assemblyName, type, methodname, args));
 }
示例#6
0
 public static object GetPropertyValue(object instance, string propertyName)
 {
     return(ReflectorHelper.GetPropertyValue(instance, propertyName));
 }