Имея два проекта: один представляет собой библиотеку классов (сборку .dll), а другой - графический интерфейс (.exe) с использованием библиотеки классов.Использование нескольких классов .settings из библиотеки классов, как действовать?
В библиотеке классов я добавил два файла .settings (который автоматически добавляет файл app.config в проект), используя все настройки «приложения». Когда я компилирую проект, я получаю файл MyLib.dll.config в выходном каталоге.
Теперь, для проекта GUI, я ссылаюсь на библиотеку классов и вручную копирую MyLib.dll.config в папку bin \ debug (и release).
Я пытаюсь получить настройки MyLib.dll.config из приложения GUI, но пока он не работает. Я пробовал иметь классы .settings для публики, но я не увенчался успехом.
Я читал о методе OpenMappedExeConfiguration(), но я не могу найти параметры в возвращаемом конфиге. Кроме того, как я могу заставить классы .settings использовать конфигурацию, возвращаемую OpenMappedExeConfiguration?
Примечание: Я не хочу вручную добавлять записи из MyLib.dll.config в app.config приложения GUI, поскольку эти записи вообще не принадлежат.
Дополнительные примечания:
.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, но он объявлен как защищенный внутренний ... –
К сожалению, я обновил эту реализацию [string], чтобы фактически скомпилировать, но она по-прежнему не проверена, так как это происходит ... но * should * Работа. –