Dove sta la nuova classe ConfigurationManager?

Sto facendo il porting di una class library dal Fx 1.1 alla 2.0.

Nelle chiamate per leggere la configurazione da file .config prima si usava fare

ConfigurationSetting.AppSettings

ora invece questa chiamata genera un warning:

System.Configuration.ConfigurationSettings.AppSettings' is obsolete:
'This method is obsolete, it has been replaced by
System.Configuration!System.Configuration.ConfigurationManager.AppSettings'    

Ma sostituendo semplicemente ConfigurationSettings con ConfigurationManager non si compila... la classe ConfigurationManager non viene trovata, perchè?

Dopo un'oretta di ricerca ho capito il motivo... e pensare che avevo anche la spiegazione sotto gli occhi!

La dicutura con ! serve per indicare la signature completa del metodo nel formato Assembly!Namespace, quindi significa che la nuova classe ConfigurationManager si trova nell'assembly System.Configuration.dll

Quindi, ora, facendo il porting dalla 1.1 è necessario creare a mano la reference all'assembly System.Configuration: nella 1.1 questo namespace era direttamente nell'assebly System, mentre ora con la 2.0 sta in un'assemby a parte.
Invece nella 2.0 i progetti di tipo class library hanno già la reference corretta al nuovo assembly, quindi tutto fila liscio.

Un grazie a Scott Cate per avermi illuminato.

powered by IMHO 1.3

posted @ lunedì 13 febbraio 2006 13:49

Print
Comments have been closed on this topic.
«dicembre»
domlunmarmergiovensab
24252627282930
1234567
891011121314
15161718192021
22232425262728
2930311234