有兩個項目:一個是類庫(.dll程序集),另一個是使用類庫的GUI(.exe)。從類庫中使用多個.settings類,如何繼續?
在類庫中,我使用所有「應用程序」設置添加了兩個.settings文件(它會自動將app.config文件添加到項目中)。當我編譯項目時,我有效地獲取了輸出目錄中的MyLib.dll.config文件。
現在,對於GUI項目,我引用類庫並手動將MyLib.dll.config複製到bin \ debug(和release)文件夾。
我想從GUI應用程序中獲取MyLib.dll.config設置,但到目前爲止它不工作。我試過將.settings類設置爲公開,但我沒有成功。
我讀過關於OpenMappedExeConfiguration()方法,但我似乎無法找到返回的配置中的設置。此外,我將如何強制.settings類使用OpenMappedExeConfiguration返回的配置?
注意:我不想手動將MyLib.dll.config中的條目添加到GUI應用程序的app.config中,因爲這些條目根本不屬於那裏。
其他注意事項:
,我已經是config文件:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="TestAssembly.ItemClass" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
<section name="TestAssembly.Entity" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</sectionGroup>
</configSections>
<applicationSettings>
<TestAssembly.ItemClass>
<setting name="Job" serializeAs="String">
<value>TrussPlant.Job</value>
</setting>
<setting name="Family" serializeAs="String">
<value>TrussPlant.Family</value>
</setting>
</TestAssembly.ItemClass>
<TestAssembly.Entity>
<setting name="TrussClassifier" serializeAs="String">
<value>TrussPlant.Classifier</value>
</setting>
<setting name="TrussComposer" serializeAs="String">
<value>TrussPlant.Composer</value>
</setting>
</TestAssembly.Entity>
</applicationSettings>
</configuration>
注意,有一個SectionGroup其中包含了兩個部分。
好主意,但似乎是DllConfig.AppSettings [propertyName]錯誤,因爲編譯器不允許它。我嘗試了DllConfig.AppSettings.Settings,但仍然無法正常工作。我甚至試圖使用DllConfig.AppSettings.Properties,但它被聲明爲受保護的內部... – 2009-09-28 19:44:40
對不起,我已經更新了這個[字符串]實現,以實際編譯,但它仍然未經測試,因爲這樣...但*應*工作。 – 2009-09-29 16:41:27