Предположим, вы создали библиотеку классов.В нем вы определили свойство Settings, которое выглядит следующим образом:
Properties.Settings.Default.ProjectName
Visual Studio может автоматически сгенерировать некоторую конфигурацию для вас следующим образом:
(app.config)
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="MyDllProject.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</sectionGroup>
</configSections>
<applicationSettings>
<MyDllProject.Properties.Settings>
<setting name="ProjectName" serializeAs="String">
<value>MyDllproject</value>
</setting>
</MyDllProject.Properties.Settings>
</applicationSettings>
</configuration>
Теперь предположим, что вы добавили эту сборку в проект.И вы получаете доступ к его настройкам, вы, скорее всего, получите MyDllproject
в качестве значения.Это несмотря на добавление любой конфигурации.Зачем?Потому что, когда сборка была сгенерирована, она была как бы записана в ней.И написанный код таков, что при отсутствии переопределения конфигурации используйте то, что было определено в app.config во время генерации.
Теперь в вашем целевом проекте вы просто добавляете необходимые разделы в конфигурациюфайл в следующем шаблоне
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<!-- start: copied from app.config of class library -->
<section name="MyDllProject.Properties.Settings"
type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false"
/>
<!-- end: copied from app.config of class library -->
<!-- other sections may follow -->
</sectionGroup>
</configSections>
<applicationSettings>
<!-- remember to maintain the same order as how it was defined in the sectionGroup -->
<!-- start: copied from app.config of class librarly -->
<MyDllProject.Properties.Settings>
<setting name="ProjectName" serializeAs="String">
<value>ConsoleProjectB</value>
</setting>
</MyDllProject.Properties.Settings>
<!-- end: copied from app.config of class library -->
<!-- other configurations settings may follow -->
</applicationSettings>
</configuration>
Вот так.
Вот небольшой пример проекта, с которым я связался: http://sdrv.ms/16ksPef