2011-11-16 12 views
16

Ho un enum che voglio ottenere da web.config in fase di esecuzione. Ho iniziato a leggere sui provider di build, ma questo sembra funzionare per le classi. Qualcuno può indicarmi un esempio o almeno indicarmi la giusta direzione.Ottieni valori enum da web.config in fase di esecuzione

In questo momento ho un elenco di valori separati da virgole in web.config, e questo non è sicuro per il tipo ed è soggetto a errori.

Se esiste un altro approccio per ottenere questo tipo di "dynamic-enum", sono aperto ad altre idee.

Grazie!

+0

controllo questi 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 - Quindi c'è un'alternativa? Voglio solo sicurezza del tipo per un tipo sconosciuto in fase di compilazione. È possibile? –

+0

Hai un enum fortemente tipizzato dichiarato nel tuo codice? O vuoi fare tutto dinamico? –

risposta

25

È possibile utilizzare ConfigurationManager e convertire valore enum:

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

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

Se fossi in te poi vorrei progettare mia classe Enum. In questo modo sarai in grado di serializzarlo in XML o di crearlo in fase di runtime. Garantirà inoltre la sicurezza del tipo.

In genere i dati verranno memorizzati in un tipo di dizionario o in un elenco di coppie chiave/valore all'interno della classe. Quindi è possibile memorizzare un elenco di valori nel file di configurazione (vedere come leggere i dati dell'elenco)

Dai uno sguardo allo here per avere qualche idea.

Problemi correlati