Ecco l'idea che avevo:Come ottenere tutte le sezioni per nome nel sectionGroup ApplicationSettings in Net 2.0
voglio un piccolo eseguibile di avere un file app.config con più sezioni che si trovano sotto il sectionGroup " applicationSettings "(non" appSettings ", non ho bisogno di scrivere sul file). Ogni sezione avrebbe un nome corrispondente a un modulo che dovrebbe essere caricato se impostato.
Ecco un esempio:
<configuration>
<configSections>
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="Executable" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
<section name="FirstModule" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</sectionGroup>
</configSections>
<applicationSettings>
<Executable>
<setting name="MyFirstSetting" serializeAs="String">
<value>My awesome feature setting</value>
</setting>
</Executable>
<FirstModule path="path to the modules assembly">
<setting name="ImportantSettingToTheModule" serializeAs="String">
<value>Some important string</value>
</setting>
</FirstModule>
</applicationSettings>
</configuration>
Ora, se io definisco la sezione FirstModule, voglio la mia applicazione per caricare il suo assemblaggio. Se la sezione non è definita, il modulo non deve essere caricato. Questo dovrebbe essere vero per non solo un modulo ma un numero non ancora definito di essi.
Quindi in pratica ho bisogno di scoprire le sezioni definite in fase di esecuzione. Come potrei farlo?
Inoltre, voglio che questo diventi un eseguibile portatile (= deve essere eseguito anche su Mono) compatibile con .NET 2.0.
Potrebbe essere interessante dare un'occhiata al progetto su GitHub (attualmente allo this commit).
Questo ha aiutato molto, vi ringrazio molto. Vorrei dare due upvotes per riferirmi direttamente al mio esempio, ma non posso ... :( – HaMster
Nessun problema, felice di aiutarti, potresti voler vedere la mia ultima modifica. Ho incluso alcune informazioni su 'ConfigurationManager.GetSection'. Che se non è necessario eseguire altre azioni sul file di configurazione, di solito è il modo preferito per accedere al file di configurazione –
Configuration config = ConfigurationManager.OpenExeConfiguration (ConfigurationUserLevel.None); - questo aprirà la configurazione per l'attuale App. Non c'è bisogno di conoscere il percorso exe – timothy