Creazione di nuove sezioni di configurazione

È possibile estendere il set standard delle impostazioni di configurazione ASP.NET con altri tag di configurazione XML. Per eseguire questa operazione, è necessario creare un gestore della sezione di configurazione personalizzato. Il gestore deve essere una classe .NET Framework che implementa l'interfaccia IConfigurationSectionHandler. Il gestore della sezione interpreta ed elabora le impostazioni definite nei tag XML all'interno di una sezione specifica di un file Web.config e restituisce l'oggetto di configurazione appropriato in base alle impostazioni di configurazione. L'oggetto di configurazione restituito dalla classe del gestore può corrispondere a qualsiasi struttura di dati e non è limitato a nessuna classe di configurazione o formato di configurazione di base.

Nell'esempio seguente viene definita un'interfaccia IConfigurationSectionHandler.

Namespace System.Web.Configuration 
   Public Interface IConfigurationSectionHandler 
      Function Create(parent As Object, input As Object, _
         node As XmlNode) As Object
   End Interface
End Namespace
[C#]
namespace System.Web.Configuration 
{
   public interface IConfigurationSectionHandler 
   {
      public Object Create(Object parent, Object input, 
         XmlNode node);
   }
}

È possibile inoltre definire una sezione personalizzata in cui viene utilizzato lo stesso gestore di configurazione della sezione <appSettings>. Esempio:

<configuration>
   <configSections>
      <sectionGroup name="myGroup">
         <sectionGroup name="nestedGroup">
            <section name="mySection" type=
               "System.Configuration.NameValueSectionHandler,System"/>
         </sectionGroup>
      </sectionGroup>
   </configSections>

   <myGroup>
      <nestedGroup>
         <mySection>
            <add key="key_one" value="1"/>
            <add key="key_two" value="2"/>
         </mySection>
      </nestedGroup>
   </myGroup>
</configuration>

È possibile leggere il valore della nuova sezione di configurazione definita nell'esempio precedente nel modo riportato di seguito:

Dim config As NameValueCollection =      
   ConfigurationSettings.GetConfig("myGroup/nestedGroup/mySection")
Response.Write("The value of key_one is " & config("key_one") & "<br>")
Response.Write("The value of key_two is " & config("key_two") & "<br>")
[C#]
NameValueCollection config = (NameValueCollection)
   ConfigurationSettings.GetConfig("myGroup/nestedGroup/mySection");
Response.Write("The value of key_one is " + config["key_one"] + "<br>");
Response.Write("The value of key_two is " + config["key_two"] + "<br>");

Vedere anche

Configurazione di ASP.NET | Configurazione di applicazioni