SoloCodigo
CLR: .Net / Mono / Boo / Otros CLR => C# => Mensaje iniciado por: mx_latino en Jueves 29 de Mayo de 2008, 19:50
-
Hola otra vez!!
Las enumeraciones en C# son muy utiles cuando se tienen opciones fijas como tamaños o colores, etc... pero quisiera saber si hay alguna forma de crear enumeraciones dinamicas...
Por ejemplo que yo tubiera una enumeracion definida como
public enum Size
{
Small,
Large,
}
Pero que durante la ejecucion o la invocacion, si esta estuviera en un UserControl
yo pueda agregarle mas items.. como Medium, etc...
-
No es posible hacer eso.
-
Es totalmente posible utilizando System.Reflection pero no es facil.
Por otro lado lo que quieres hacer es totalmente inutil... si te explicas mejor respecto a lo que quieres te podran brindar mejor asesoria
-
Para establecer valores de enums mediante reflection puedes leerte http://www.codeproject.com/KB/cs/SetEnumWithReflection.aspx (http://www.codeproject.com/KB/cs/SetEnumWithReflection.aspx)
pero como dice JuanK seguramente es mucho mejor usar un List<string> o cualquier otro método para establecer los items de tu UserControl.
-
Claro, pero es necesario saber que 4es lo que quieres hacer.
Un StringDictionary me pareceria perfecto pero como no sabemos puntualmente que es lo que quieres...
-
Vaya, no sabia que se pudiera hacer, se aprende algo nuevo cada dia :)
Gracias JuanK y E.Baley
-
Digamos que quiero crear un componente que me servira para obtener diferentes mensajes y que el mensaje que va a lanzar sera de acuerdo a un parametro, el mismo provendra de una "enumeracion dinamica" la cual se alimentara de los registro que sean necesarios y que estaran almacenados en una Tabla de mi DB llamada Mensages que contenga los campos: Nombre y Definicion; y que conforme yo agregue registros a mi Table la enumeracion sola se acople... entonces cualquiera que vaya a usar mi componente podra ver todos los mensajes disponibles y seran tantos como registros en mi tabla......
Entonce bastaria con la dll del componente y la Tabla para poder obtener la lista de mensajes... Todo esto porq se trabaja en equipos de programacion y estoy encargado de crear componentes y UserControls para que los demas solo usen las dlls de forma directa....
NO SE SI LOGRO EXPLICAR LA IDEA...... ;)
-
no le veo ninguna funcionalidad a la enumeración dinámica. Eso lo hacer muchisimo mejor con un StringDictionary
-
Compadre resulta que con un enum tu pones Color.RojoSangre y con el StringDictionary tendrias que poner Color.[1] o Color["RojoSangre"] y que ocurre si el que va a utilizar el componente no sabe el INDEX o el NOMBRE EXACTO de el color que quiere usar??? :( Es por eso necesito enumeraciones porq solo entonces el que usaria mi componente y quiera pasar un parametro que sea un item de un enum al momento de poner NombreDelEnum. tendria una lista con todos los nombres a escoger!!!! pero necesito que esa lista de nombres sea dinamica para que una vez compilado mi componente ese cree automaticamente tantos items en el enum como registro en mi DB.... :blink:
-
Hola mi estimado,
tengo el mismo problema que tu estoy creando un componente que al igual que el tuyo se llena desde mi base de datos, y nesesito crear un enum dinamico, apenas estoy checando el link que te mandaron, pero si me das un consejillo de por donde llegarle te lo agradesco
gracias :good: