2011-11-16 18 views
16

Tengo una enumeración que deseo obtener de web.config en tiempo de ejecución. Empecé a leer acerca de los proveedores de compilación, pero esto parece funcionar para las clases. ¿Puede alguien señalarme un ejemplo, o al menos señalarme en la dirección correcta?Obtenga los valores enum de web.config en tiempo de ejecución

Ahora tengo una lista de valores separados por comas en el archivo web.config, y esto no es seguro para el tipo de letra y es propenso a errores.

Si hay otro enfoque para obtener este tipo de "enum dinámico", estoy abierto a otras ideas.

¡Gracias!

+0

comprobar estos http://social.msdn.microsoft.com/Forums/en/netfxbcl/thread/5a700783-0425-43a4-bdc3-0f85a029d3f9 http://stackoverflow.com/questions/478403/can -i-add-and-remove-elements-of-enumeration-at-runtime-in-java –

+0

@NiranjanKala - Entonces, ¿hay una alternativa? Solo quiero seguridad de tipos para un tipo desconocido en tiempo de compilación. ¿Esto es posible? –

+0

¿Tiene una enumeración fuertemente tipada declarada en su código? ¿O quieres hacer todo de manera dinámica? –

Respuesta

25

Puede utilizar ConfigurationManager y convertir el valor de enumeración:

<configuration> 
    <appSettings> 
    <add key="YourEnum" value="BlueSky" /> 
    </appSettings> 
</configuration> 

string configValue = ConfigurationManager.AppSettings["YourEnum"]; 
YourEnumType value = (YourEnumType)Enum.Parse(typeof(YourEnumType), configValue); 
0

Si yo fuera usted entonces yo diseñar mi propia clase Enum. De esta forma, podrá serializarlo en XML o compilarlo en tiempo de ejecución. También asegurará que aún tenga seguridad de tipo.

Normalmente, los datos se almacenarán en un tipo de diccionario o en una lista de pares clave/valor dentro de la clase. A continuación, puede almacenar una lista de valores en el archivo de configuración (eche un vistazo a cómo leer los datos de la lista)

Eche un vistazo a here para obtener algunas ideas.

Cuestiones relacionadas