public static ListGetAllProperties(Type type) { BindingFlags flags = BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static | BindingFlags.Instance | BindingFlags.DeclaredOnly; var list = new List (); if (type != null) { list.AddRange(type.GetProperties(flags)); list.AddRange(GetAllProperties(type.BaseType)); } return list; } public static T Clonar (T original) { if (original == null) { throw new Exception("cannot be null object"); } var tipo = original.GetType(); var resultado = Activator.CreateInstance(tipo); foreach (PropertyInfo propiedad in GetAllProperties(tipo)) { propiedad.SetValue(resultado, propiedad.GetValue(original, null), null); } return (T)resultado; }
jueves, 14 de febrero de 2013
Clone Generic Object by Reflection in .NET
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario