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.
«luglio»
domlunmarmergiovensab
30123456
78910111213
14151617181920
21222324252627
28293031123
45678910