Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Конфигурирование параметров сборки, Использование параметров сборки 
:(
    Опции темы
adLucem
Дата 5.5.2007, 13:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 94
Регистрация: 17.4.2007
Где: Украина, Донецк

Репутация: 4
Всего: 5



Статус: черновик (идет проверка написанного материала)
Среда разработки: Visual Studio 2005

Вступление.
Параметры сборки делятся на два вида: параметры приложения (application settings) и параметры пользователя (user settings). Различие между ними в назначении: параметры приложения предназначены для глобального конфигурирования приложения, а параметры пользователя для настройки работы отдельных пользователей. Поэтому параметры приложения связаны с самим приложением и не зависят от конкретного пользователя, который использует приложение, а параметры пользователей относятся только к тому пользователя, который в данный момент работает с приложением. В данном случае понятие пользователя подразумевает обладателя учетной записи Microsoft Windows.


Параметры приложения.
    Это параметры, которые изменяются достаточно редко и связаны, в первую очередь, с администрированием приложения. Эти параметры не предназначены для изменения от имени конкретных пользователей (несмотря на то, что они могут иметь такие привилегии) и являются общими для всех пользователей.

Виды параметров приложения.
  • Внутренние параметры приложения - располагаются внутри конкретной сборки приложения, которая использует эти параметры (для которой они были объявлены при проектировании). Разные сборки в рамках одного приложения могут иметь внутренние параметры приложения с одинаковыми именами. Доступ к этим параметрам осуществляется через пространство имен Properties.Settings. Редактирование этих параметров может происходить только во время разработки приложения - после компиляции они становятся фиксированными.
  • Внешние параметры приложения - располагаются в файле ИмяПриложения.exe.config, который находится в папке приложения. Этот файл используется совместно всеми сборками в рамках приложения, поэтому эти параметры должны иметь уникальные имена не только в рамках отдельной сборки, но и в рамках всего приложения. Доступ к этим параметрам осуществляется с использованием ConfigurationManager из пространства имен System.Configuration сборки System.Configuration. Редактирование этих параметров может происходить после установки приложения путем редактирования файла ИмяПриложения.exe.config.
Внутренние параметры приложения.
    Для создания внутренних параметров приложения нужно создать параметры приложения (Project->Properties->Settings); добавить необходимые параметры (задать имя параметра (Name), тип (Type) и значение (Value)) и установить для них область видимости (Scope) - Приложение (Application). Значения этих параметров будут автоматически добавлены в сборку как константы.

Внешние параметры приложения.
    Для создания внешних параметров приложения необходимо в проекте (Project) создать файл app.config (если он еще не создан; этот файл автоматически создается при добавлении внутренних параметров приложения или параметров пользователя) (Project->[i]Add[/i]->New item...->Application Configuration File). Открываем данный файл в редакторе XML и добавляем следующую секцию:
Код

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <appSettings>
        <add key="ИмяПараметраПриложения" value="ЗначениеПараметраПриложения"/>
    </appSettings>
</configuration>


    Для доступа к внешним параметрам приложения необходимо добавить ссылку на сборку (Project->Add Reference...System.Configuration. Для использования внешних параметров в целевом файле добавляем ссылку на пространство имен System.Configuration и используем класс ConfigurationManager:
Код

using System;
using System.Windows.Forms;
using System.Configuration;

namespace FooWindowsApplication {
    public partial class FooForm : Form {
        public FooForm ( ) {
            InitializeComponent ( );
            string value = ConfigurationManager.AppSettings [ "ИмяПараметраПриложения" ];
        }
    }
}


    AppSettings возвращает строковое представление параметра приложения, то есть контроль типов в данном случае не выполняется (в отличие от внутренних параметров приложения, где тип указывается явно). Если соответствующий параметр не найден в файле ИмяПриложения.exe.config (например, файл не существует), то возвращается нулевая ссылка (null).
    Файл ИмяПриложения.exe.config может редактироваться вручную, что позволяет изменять параметры приложения после его развертывания.

    Если вы используете, одновременно различные виды параметров приложения, то файл app.config в вашем проекте может содержать различные данные, при этом после развертывания приложения все секции, кроме <appSettings></appSettings> не используются. Поэтому файл, который вы размещаете в папке развернутого приложения, должен содержать только эту секцию.

Параметры пользователя.
    Это параметры, которые изменяются достаточно часто в процессе работы конкретных пользователей с приложением. Эти параметры уникальны для каждого пользователя приложения.

   Параметры пользователя хранятся в папке "Documents and Settings -> ИмяПользователя -> Local Settings -> Application Data -> ИмяПроизводителяПриложения -> ПолноеИмяПриложения -> Версия -> user.config". Например:
Код

<?xml version="1.0" encoding="utf-8" ?> 
<configuration>
    <userSettings>
        <FooWindowsApplication.Properties.Settings>
            <setting name="FooMainFormWidth" serializeAs="String">
                <value>200</value> 
            </setting>
            <setting name="FooMainFormHeight" serializeAs="String">
                <value>100</value> 
            </setting>
        </FooWindowsApplication.Properties.Settings>
    </userSettings>
</configuration>


    Этот файл создается после первого изменения пользовательских параметров (если не создан явно при установке приложения). Пользовательские параметры, которые вы задаете в процессе разработки проекта сохраняются как константы внутри сборки и используются по умолчанию, что гарантирует свободный доступ к параметрам пользователя (если файл не найден или поврежден, то будут использоваться константы, сохраненные в сборке, а файл будет создан заново при первом изменении значений по умолчанию).

    Изменение пользовательских параметров:
Код

Properties.Settings.Default.FooMainFormHeight = 100;
Properties.Settings.Default.FooMainFormWidth = 200;
// Сохранение параметров в файл происходит только после вызова это функции.Properties.Settings.Default.Save ( ); 


    Если проект содержит включает сборки, которые содержат собственные параметры пользователя, то будет создан один файл user.config, но он будет иметь более сложную структуру, в которой будут сохранены параметры пользователя для каждой из сборок проекта.
Код

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <configSections>
        <sectionGroup name="userSettings">
            <section name="FooAssembly.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
        </sectionGroup>
    </configSections>
    <userSettings>
        <FooWindowsApplication.Properties.Settings>
            <setting name="FooMainFormWidth" serializeAs="String">
                <value>200</value>
            </setting>
            <setting name="FooMainFormHeight" serializeAs="String">
                <value>100</value>
            </setting>
        </FooWindowsApplication.Properties.Settings>
        <FooAssembly.Properties.Settings>
            <setting name="FooLibraryConnectionTimeout" serializeAs="String">
                <value>100</value>
            </setting>
        </FooAssembly.Properties.Settings>
    </userSettings>
</configuration>


Это сообщение отредактировал(а) adLucem - 5.5.2007, 15:52
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0688 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.