Использование App.config для установки сильно типизированных переменных
Я новичок С#, на котором запущен .NET 3.5, и я хотел бы сохранить кучу значений по умолчанию для приложения в App.config, так как настройки могут отличаться в зависимости от среды сервера (например, разработка, постановка, производство). То, что я хочу сделать, похоже на то, что описано в qaru.site/info/361043/..., но я также хочу иметь возможность использовать нестроковые значения ( например int, bool). Что-то вроде этого (имена-значения - всего лишь примеры, кстати):
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<applicationSettings>
<MyApp>
<setting name="InitText" serializeAs="String">
<value>Hello</value>
</setting>
<setting name="StartAt" serializeAs="Integer">
<value>5</value>
</setting>
<setting name="IsWeekend" serializeAs="Boolean">
<value>True</value>
</setting>
</MyApp>
</applicationSettings>
</configuration>
Может ли кто-нибудь дать пример того, как это сделать, и как получить значения через С#? Я видел много примеров, которые требуют использования и, но я не уверен, нужны ли мне эти элементы, и если да, то как их создавать.
Ответы
Ответ 1
Как насчет использования архитектуры параметров приложения в .NET Framework. Вы можете иметь строго типизированный доступ к значениям по умолчанию.
В проекте приложения Windows файл настроек создается автоматически в папке "Ресурсы". Затем вы можете добавить параметры приложения, которые сохраняются в файле App.config так же, как вы показали в своем вопросе.
Например:
int i = Settings.Default.IntSetting;
bool b = Settings.Default.BoolSetting;
Edit:
Если ваш проект не содержит файл настроек, вы всегда можете добавить его, добавив новый элемент, а затем выбрав файл настроек. (Щелкните правой кнопкой мыши файл проекта и выполните: Add- > New Item- > Settings File). В моем случае я назвал его "Настройки", но вы можете назвать его как хотите.
После добавления файла visual studio откроет конструктор параметров, в котором вы можете добавить свои строго типизированные настройки. Из того, что вы сказали, вы должны установить настройки в области Приложения, а не у пользователя. Затем создайте проект, и вы должны получить доступ к классу с именем файла.
Ответ 2
Boolean isWeekend = Convert.ToBoolean(ConfigurationManager.AppSettings["IsWeekend"])
Ответ 3
То, что предложил JayG, может быть сделано с помощью Visual Studio автоматически. Используйте мастер настройки appatings как описано в MSDN. Также можно прочитать всю инфраструктуру Параметры приложения.
Ответ 4
Похоже, вы хотите иметь пользовательский <configSection>
. В принципе, он работает следующим образом:
-Создайте класс конфигурации, который имеет соответствующие значения по умолчанию и т.д., и настройте красивую структуру наследования, чтобы он автоматически загружался на основе настроек web.config.
-Добавьте свой раздел конфигурации в файл web.config, указав "тип", который загрузит ваши настройки, чтобы среда .NET узнала, что инициализировать
Об этом можно узнать в