Я новичок в .NET и до сих пор не понял, как работают файлы конфигурации.
Каждый раз, когда я ищу об этом в Google, я получаю результаты о web.config, но я пишу приложение Windows Forms.
Я понял, что мне нужно использовать пространство имен System.Configuration, но документация не помогает.
Как определить, что мой файл конфигурации - XYZ.xml? Или у него есть имя по умолчанию для файла конфигурации? Я все еще не понял этого.
Кроме того, как мне определить новый раздел? Действительно ли мне нужно создавать класс, наследующий от ConfigurationSection?
Я хотел бы просто иметь файл конфигурации с такими значениями, как это:
<MyCustomValue>1</MyCustomValue>
<MyCustomPath>C:\Some\Path\Here</MyCustomPath>
Есть простой способ сделать это? Можете ли вы объяснить простым способом, как читать и писать из / в простой файл конфигурации?
.net
xml
winforms
configuration
Фабио Гомеш
источник
источник
Ответы:
Вы хотите использовать App.Config.
Когда вы добавляете новый элемент в проект, появляется нечто, называемое файлом конфигурации приложений. Добавьте это.
Затем вы добавляете ключи в раздел конфигурации / appsettings
Подобно:
<configuration> <appSettings> <add key="MyKey" value="false"/>
Получите доступ к участникам, выполнив
Это работает в .NET 2 и выше.
источник
ConfigurationSettings
это устаревший вариант, используйтеSystem.Configuration.ConfigurationManager.AppSettings["MyKey"];
.System.Configuration.ConfigurationManager
вашего проекта необходима ссылка наSystem.Configuration.dll
Разъяснение предыдущих ответов ...
Добавьте новый файл в свой проект ( Добавить → Новый элемент → Файл конфигурации приложения )
Новый файл конфигурации появится в обозревателе решений как App.Config .
Добавьте свои настройки в этот файл, используя в качестве шаблона следующее:
<configuration> <appSettings> <add key="setting1" value="key"/> </appSettings> <connectionStrings> <add name="prod" connectionString="YourConnectionString"/> </connectionStrings> </configuration>
Получите их так:
После сборки ваша выходная папка будет содержать файл с именем <assemblyname> .exe.config. Это будет копия файла App.Config . Для создания этого файла разработчик не должен выполнять никаких дополнительных действий.
источник
Быстро прочитав предыдущие ответы, они выглядят правильно, но не похоже, что кто-то упоминал о новых возможностях конфигурации в Visual Studio 2008. Он по-прежнему использует app.config (скопированный во время компиляции в YourAppName.exe.config) но есть виджет пользовательского интерфейса для установки свойств и определения их типов. Дважды щелкните Settings.settings в папке «Свойства» вашего проекта.
Самое приятное то, что доступ к этому свойству из кода является безопасным для типов - компилятор обнаружит очевидные ошибки, такие как неправильный ввод имени свойства. Например, к свойству MyConnectionString в app.config можно будет получить доступ, например:
источник
Settings.Default.Test = "abc"; Settings.Default.Save();
Вам следует создать файл App.config (очень похожий на web.config ).
Вы должны щелкнуть правой кнопкой мыши свой проект, добавить новый элемент и выбрать новый «Файл конфигурации приложения» .
Убедитесь, что вы добавили using System.Configuration в свой проект.
Затем вы можете добавить к нему значения:
<?xml version="1.0" encoding="utf-8" ?> <configuration> <appSettings> <add key="setting1" value="key"/> </appSettings> <connectionStrings> <add name="prod" connectionString="YourConnectionString"/> </connectionStrings> </configuration>
Просто примечание: согласно Microsoft , вы должны использовать ConfigurationManager вместо ConfigurationSettings (см. Раздел примечаний):
источник
Имя по умолчанию для файла конфигурации - [yourexe] .exe.config. Таким образом, у notepad.exe будет файл конфигурации с именем notepad.exe.config в той же папке, что и программа. Это общий файл конфигурации для всех аспектов среды CLR и Framework, но он может содержать ваши собственные настройки под
<appSettings>
узлом.<appSettings>
Элемент создает набор пар имя-значение , которые могут быть доступны , какSystem.Configuration.ConfigurationSettings.AppSettings
. Однако нет возможности сохранить изменения обратно в файл конфигурации.Также можно добавить свои собственные пользовательские элементы в файл конфигурации - например, для определения структурированного параметра - путем создания класса, который реализует его,
IConfigurationSectionHandler
и добавления его к<configSections>
элементу файла конфигурации. Затем вы можете получить к нему доступ, позвонивConfigurationSettings.GetConfig
..NET 2.0 добавляет новый класс,
System.Configuration.ConfigurationManager
который поддерживает несколько файлов с переопределением для каждого пользователя системных данных. Он также поддерживает сохранение измененных конфигураций обратно в файлы настроек.Visual Studio создает файл с именем
App.config
, который копирует в папку EXE с правильным именем при построении проекта.источник
Лучшая (IMHO) статья о конфигурации .NET-приложения находится на CodeProject, Unraveling the Mysteries of .NET 2.0 Configuration . И моя следующая любимая (более короткая) статья о разделах в файлах конфигурации .NET - « Понимание обработчиков разделов - файл App.config» .
источник
В Windows Forms у вас есть
app.config
файл, который очень похож наweb.config
файл. Но поскольку я вижу, что вам это нужно, это настраиваемые значения, я предлагаю использовать Настройки .Для этого откройте свойства своего проекта и перейдите в настройки. Если файл настроек не существует, у вас будет ссылка для его создания. Затем вы можете добавить настройки в таблицу, которую вы видите там, которая будет генерировать как соответствующий XML, так и класс настроек, который можно использовать для загрузки и сохранения настроек.
Класс настроек будет называться примерно так
DefaultNamespace.Properties.Settings
. Затем вы можете использовать код, похожий на:источник
Я согласен с другими ответами, которые указывают на app.config. Однако вместо того, чтобы читать значения непосредственно из app.config, вам следует создать служебный класс (AppSettings - это имя, которое я использую), чтобы читать их и отображать как свойства. Класс AppSettings можно использовать для агрегирования параметров из нескольких хранилищ, например значений из app.config и информации о версии приложения из сборки (AssemblyVersion и AssemblyFileVersion).
источник
Очень простой способ сделать это - использовать свой собственный
Settings
класс .источник
Использование:
AppSettings устарел и теперь считается устаревшим ( ссылка ).
Кроме того, раздел appSettings файла app.config был заменен разделом applicationSettings .
Как уже упоминал кто-то другой, вы должны использовать System.Configuration.ConfigurationManager ( ссылка ), который является новым для .NET 2.0.
источник
Какую версию .NET и Visual Studio вы используете?
Когда вы создали новый проект, в вашем решении должен быть файл с именем app.config . Это файл конфигурации по умолчанию.
источник