Использование 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 узнала, что инициализировать

Об этом можно узнать в