Подтвердить что ты не робот

Файл настроек vs app.config

Возможный дубликат:
В чем разница между файлом app.config и файлом XYZ.settings?

Я не понимаю взаимосвязи между настройками и конфигурационными файлами. Если я добавлю запись в файл настроек, она также добавится в app.config. Означает ли это, что изменение значения в app.config приведет к обновлению настроек? Если нет, как мне обновить настройки в реальном приложении? Какова общая цель использования файла настроек вместо помещения объектов непосредственно в app.config?

4b9b3361

Ответ 1

Из того, что я могу сказать, оглядываясь, кажется, что файл настроек и дизайнер предоставляют своего рода оболочку для файла конфигурации. Дизайнер настроек управляет некоторыми значениями, которые входят в конфигурационный файл, но также изменяет файл .settings в вашем каталоге свойств и изменяет сгенерированный код в файле Settings.Designer.cs.

Обратите внимание, что в файле конфигурации значения не имеют никаких типов, но в файле .settings они делают. Теперь откройте Settings.Designer.cs. Вы увидите, что код, созданный там, принимает значения из вашего файла конфигурации и выводит их в соответствующие типы, как указано в вашем файле .settings, или в конструкторе параметров. Таким образом, он обеспечивает безопасный интерфейс типа к значениям в вашем файле конфигурации. Если вы измените значение в своем файле конфигурации, то при следующем запуске в конструктор параметров он спросит вас, хотите ли вы обновить .settings, чтобы отразить эти изменения.

Итак, чтобы ответить на ваш вопрос, как только приложение будет развернуто, вы можете изменить значение в файле конфигурации, если оно может быть отнесено к соответствующему типу, иначе я предполагаю, что он потерпит неудачу в Settings.Designer.cs. Единственной целью, которую я вижу, является, по-видимому, безопасность и удобство работы дизайнера над обработкой XML конфигурационного файла.

Также как в сторону, помните, что, поскольку config не является версированным файлом, установщики не будут обновлять их на клиентской машине. Он не позволит ему топать на любых изменениях пользователя. Поэтому, когда он будет развернут, если вы внесете свои собственные изменения в конфигурацию, которая потребуется пользователям, им придется скопировать изменения вручную.