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)); } }
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); }
public static PropertyInfo[] FindPropertys(string assemblyName, string typeName, BindingFlags bindingAttr) { return(ReflectorHelper.FindPropertys(assemblyName, typeName, bindingAttr)); }
public static PropertyInfo[] FindPropertys(string assemblyName, string typeName) { return(ReflectorHelper.FindPropertys(assemblyName, typeName)); }
public static object ExecuteMethod(string assemblyName, string type, string methodname, object[] args) { return(ReflectorHelper.ExecuteMethod(assemblyName, type, methodname, args)); }
public static object GetPropertyValue(object instance, string propertyName) { return(ReflectorHelper.GetPropertyValue(instance, propertyName)); }