Come leggere la sezione web.config come XML in C #?

Questo è un esempio copiato da:

Come leggere la sezione di configurazione personalizzata in app.config in c #

Voglio leggere la seguente sezione personalizzata da app.config:

          

E anche questo è il mio caso. Tuttavia, non voglio creare una class personalizzata per la gestione dei valori, definendo questa class in web.config e infine utilizzandola. È pesante per i miei bisogni.

Invece mi piacerebbe fare qualcosa di molto semplice – recuperare una sezione come XML. Quindi potrei usare regolarmente Linq.Xml per analizzarlo. In questo modo, non ho bisogno di creare nuove classi per ogni sezione, non ho bisogno di dichiararle. Per il mio scopo è sufficiente da un lato, e minimo dall’altro (lo faccio una volta, mappatore dei valori-chiave per le sezioni annidate). Perfetto

L’unico pezzo mancante è (la mia domanda ): come ottenere una sezione web.config come XML? Nota sulla sezione:

  • non può essere codificato, perché deve essere modificato a mano
  • non può essere serializzato per lo stesso motivo

Quindi non sto cercando una soluzione alternativa per spremere l’intera sezione come valore in appSettings, ma sono davvero alla ricerca di un metodo per ottenere la sezione corretta come XML.

Vorrei ottenerlo da ConfigManager (!) , Perché in questo modo non ho a che fare con la risoluzione di quale web.config dovrei leggere, ecc. Cioè meno possibilità di sbagliare che imitare manualmente la precedenza di web.config.


Perdonami per avermelo ricordato, ma per favore evita le “risposte”, non dovresti farlo, usa classi personalizzate per ogni sezione, ecc. L’ho già preso in considerazione e ho optato contro di esso.

Penso che sia necessario farlo manualmente e caricare la configurazione Web in memoria:

 XmlDocument doc = new XmlDocument(); doc.Load(Server.MapPath("~/Web.config")); 

O dovrai creare le sezioni di configurazione personalizzate che vuoi evitare.

Totalmente non testati, ma potresti usare qualcosa di simile? :

 ConfigurationSection exampleSection = (ConfigurationSection)ConfigurationManager .GetSection("system.web/exampleSection"); 

Quindi possibilmente usare exampleSection.ElementInformation per ottenere maggiori informazioni?