//Guarda el valor de un campo que pertenece a un modelo //ModeloBase.GuardarCampoValor(usuario,"nombre"."rosario") //usuario.GuardarNombre("rosario") public static Boolean GuardarCampoValor(ModeloFactory objeto, String campo, String valor) { //TODO---->>> modificar campos TextInfo textInfo = (new CultureInfo("es-BO", false)).TextInfo; MethodInfo metodo = objeto.GetType().GetMethod("Guardar" + textInfo.ToTitleCase(campo)); if (metodo != null) { ParameterInfo[] parametros = metodo.GetParameters(); if (parametros != null && parametros.Length > 0) { String parametroTipoNombre = parametros[0].ParameterType.Name; Object parametroValor = null; switch (parametroTipoNombre) { case "Int32": parametroValor = Int32.Parse(valor); break; case "Modelo.Usuario": //parametroValor = Int32.Parse(valor); break; default: parametroValor = valor; break; } metodo.Invoke(objeto, new object[] { parametroValor }); } return(true); } return(false); }
//Se obtiene un valor de un campo de un objeto enviandole solamente el nombre // Si el objeto es Rol... y le queremos obtener el valor del campo nombre //ModeloBase.ObtenerCampoValor(rol,"nombre"); public static Object ObtenerCampoValor(ModeloFactory objeto, String campo) { //ToTitleCase ---> PascalCase TextInfo textInfo = (new CultureInfo("es-BO", false)).TextInfo; MethodInfo metodo = objeto.GetType().GetMethod("Obtener" + textInfo.ToTitleCase(campo)); if (metodo != null) { return(metodo.Invoke(objeto, null)); } return(null); }