【发布时间】:2010-12-02 01:47:12
【问题描述】:
有两个项目:一个是类库(.dll 程序集),另一个是使用类库的 GUI (.exe)。
在类库中,我使用所有“应用程序”设置添加了两个 .settings 文件(它会自动将 app.config 文件添加到项目中)。当我编译项目时,我有效地在输出目录中获得了 MyLib.dll.config 文件。
现在,对于 GUI 项目,我引用类库并手动将 MyLib.dll.config 复制到 bin\debug(和发布)文件夹。
我正在尝试从 GUI 应用程序中获取 MyLib.dll.config 设置,但到目前为止它无法正常工作。我尝试将 .settings 类设置为 public,但没有成功。
我已阅读有关 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 包含两个部分。
【问题讨论】:
标签: .net-3.5 configuration c#-3.0 configuration-files