Una classe per una sezione di configurazione del web.config

di Cristian Civera, in UserScript, ASP.NET, web.config,

Come si è già visto nello script #475 si può creare una nuova sezione nel web.config, o anche a livello di macchina con machine.config, utilizzando le classi contenute nel namespace System.Configuration o System.Web.Configuration, che implementano l'interfaccia IconfigurationSectionHandler.
E' anche possibile creare un nostro section handler mediante la creazione di una classe che implementi tale interfaccia, che richiede un sola funzione "Create".
Questa funzione restituisce un tipo object contenente le nostre informazioni allo stack chiamante, attraverso il metodo ConfigurationSettings.GetConfig.
Nell'esempio di seguito creiamo una nuova sezione MySection che restituisce un tipo MyApplication, contenente titolo e colore di sfondo da applicare alle nostre pagine.

namespace ASPItaliaScripts
{
  public class MySectionHandler:IConfigurationSectionHandler
  {
    public object Create(object parent, object configContext, XmlNode section)
    {
      MyApplication info=new MyApplication();
      //per ogni attributo contenuto nel nodo 'MySection'
      foreach (XmlAttribute att in section.Attributes)
      {
        //se è un attributo non riconosciuto genero un errore indicante
        //che non è valido
        switch (att.Name)
        {
          case "title":
            info.Title=att.InnerText;
            break;
          case "bgcolor":
            info.BgColor=att.InnerText;
            break;
          default:
            throw new ConfigurationException(att.Name +" attribute not valid",section);
        }
      }
      return info;
    }
  }

  public class MyApplication
  {
    public string Title="";
    public string BgColor="#FFFFFF";
  }

}

Il codice è abbastanza commentato. Il metodo Create passa un oggetto XmlNode, il nodo "MySection", che possiamo manipolare con gli strumenti messi a disposizione dal framework. Qual'ora avessimo più web.config all'interno di un'applicazione web, la funzione create verrà richiamata tante volte quanto il numero dei files di configurazione e la variabile parent sarà valorizzata con l'oggetto restituito dal metodo create del web.config padre.
Nell'allegato c'è il codice completo e un esempio di come utilizzarlo.

Per lo script #475 - Più sezioni di configurazione attraverso il nodo del web.config
https://www.aspitalia.com/liste/usag/script.aspx?ID=475

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi