EjemplosDuoc.es.tl
  Traspaso de valores de un obj a otro
 
Permite asignar los valores de un objeto dado a otro. Ambos objetos deberán tener en común, los mismos nombres en las propiedades para que este metodo sea util.

Metodo de Ejemplo:

         public Boolean Update()
        {
            try
            {
                DAL.Alumno alumno = ConectarDAL.Modelo.Alumno.
                                                        First(x => x.rut == rut);
                alumno.rut = rut;
                alumno.digito = digito;
                alumno.nombre = nombre;
                alumno.apellidos = apellidos;
                alumno.email = email;
                ConectarDAL.Modelo.SaveChanges();
                return true;
            }
            catch
            {
                return false;
            }
        }

Con la clase intercambio quedaría:

 public Boolean Update()
        {
            try
            {
                DAL.Alumno alumno = ConectarDAL.Modelo.Alumno.
                                                        First(x => x.rut == rut);

                 IntercambioValores.Syncronize(alumno , this);
                ConectarDAL.Modelo.SaveChanges();
                return true;
            }
            catch
            {
                return false;
            }
        }



CLASE:




    public class IntercambioValores
    {
/// <summary>
        /// Sincroniza los valores de propiedades comunes entre 2 objetos 
        /// </summary>
        /// <param name="origen">Objeto con los valores a copiar hacia el destino.</param>
        /// <param name="destino">Objeto que recibe la copia de los valores en sus propiedades</param>
        internal static void Syncronize(object origen, object destino)
        {
            /* Auxiliares para Reflection del Tipo de Dato Origen */
            Type tipo = null;
            PropertyInfo[] propiedades = null;
 
            /* Obtiene información del Tipo Origen y sus Propiedades */
            tipo = origen.GetType();
            propiedades = tipo.GetProperties();
 
            /* Recorre las propiedades del Origen para asignar los valores al destino */
            foreach (PropertyInfo propiedad in propiedades)
            {
                try
                {
                    /* Recupera propiedad destino por su nombre */
                    PropertyInfo propInfo = destino.GetType().GetProperty(propiedad.Name);
 
                    /* Asigna valor destino desde el origen */
                    propInfo.SetValue(destino, propiedad.GetValue(origen, null));
                }
                catch {/* Los valores que no se pueden asignar son ignorados */}
            }
        }

    }
 
}

Uso:

IntercambioValores.Syncronize(ObjOrigen, ObjDestino);




 
 
   
 
Este sitio web fue creado de forma gratuita con PaginaWebGratis.es. ¿Quieres también tu sitio web propio?
Registrarse gratis