這裏是我提出的想法:如何通過名稱獲取所有部分在sectionGroup的applicationSettings .NET 2.0中
我想要一個小型可執行文件有屬於sectionGroup下位於多個部分的app.config文件「 applicationSettings「(而不是」appSettings「,我不需要寫入文件)。每個部分都會有一個名稱對應於應該在設置時加載的模塊。
下面是一個例子:
<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>
現在,如果我定義了FirstModule部分,我想我的應用程序加載其組裝。如果該部分未定義,則不應加載該模塊。這不僅適用於一個模塊,也適用於尚未定義的模塊。
所以我基本上需要找到運行時定義的部分。我會怎麼做?
此外,我希望這成爲一個可移植的可執行文件(=它必須在Mono上運行),它向後兼容.NET 2.0。
查看GitHub上的項目(當前位於this commit)可能很有趣。
幫助很大,非常感謝你。我會給兩個直接引用我的例子的upvotes,但我不能... :( – HaMster 2013-02-19 19:43:57
沒問題,很高興幫助,你可能想看看我的最新編輯,我包含了一些關於'ConfigurationManager.GetSection'的信息。如果您不需要對配置文件執行任何其他操作,通常是訪問配置文件的首選方式。 – 2013-02-19 20:26:18
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); - 這將打開當前配置沒有必要知道EXE路徑 – timothy 2014-09-12 08:36:52