public static List <EntidadeDisponible> recuperaEntidades() { List <EntidadeDisponible> resultado = new List <EntidadeDisponible>(); var classeBase = typeof(Libro); Type[] listaClases = GetTypes(Assembly.GetExecutingAssembly(), classeBase.Namespace); for (int i = 0; i < listaClases.Length; i++) { var cfg = listaClases[i].GetCustomAttribute(typeof(Configuracion), true) as Configuracion; if (null != cfg) { EntidadeDisponible e = new EntidadeDisponible(cfg.Nombre, listaClases[i].AssemblyQualifiedName, cfg.Servicio); foreach (var prop in listaClases[i].GetProperties()) { object[] objects = prop.GetCustomAttributes(false); foreach (object obj in objects) { if (obj is Columna) { e.Columnas.Add(new KeyValuePair <string, string>(prop.Name, ((Columna)obj).Nombre)); } } } resultado.Add(e); } } return(resultado); }
private void cboEntidades_SelectedIndexChanged(object sender, EventArgs e) { EntidadeDisponible entidadSeleccionada = cboEntidades.SelectedValue as EntidadeDisponible; // configurando la información de la entidad seleccionada dataGridView1.DataSource = null; dataGridView1.Columns.Clear(); dataGridView1.ColumnCount = entidadSeleccionada.Columnas.Count; for (int i = 0; i < entidadSeleccionada.Columnas.Count; i++) { dataGridView1.Columns[i].DataPropertyName = entidadSeleccionada.Columnas[i].Key; dataGridView1.Columns[i].Name = entidadSeleccionada.Columnas[i].Value; } // creando una instancia del servicio solicitado instance = Activator.CreateInstance(entidadSeleccionada.Servicio); instanceType = entidadSeleccionada.Servicio; textBox1_TextChanged(null, null); }