* При перепечатке материалов ссылка на www.SeoLiga.ru обязательна!
Динамические свойства
8 февраля 2009
Динамические свойства приложения позволяют инициализировать его объекты. Так, некоторые свойства объектов приложения можно связать с элементами кон- фигурационного файла и динамически извлекать для них значения во время вы- полнения. При помощи динамических свойств также удобно связывать внешние ресурсы, изменяющиеся на протяжении жизненного цикла приложения, такие, как строки подключения к базе данных. Эти свойства позволяют изменять параметры приложения во время выполнения, не прибегая к его перекомпиляции и повторно- му развертыванию. В Visual Studio .NET динамические свойства можно задавать во время разработки через окно Properties, а код для извлечения значений динамичес- ких свойств во время выполнения вам придется написать самостоятельно.
Настройка динамических свойств посредством окна Properties Чтобы сделать избранные свойства элементов пользовательского интерфейса дина- мическими, воспользуйтесь окном Properties. Для каждого элемента управления это окно отображает узел DynamicProperties, который позволяет сделать дан- ное свойство динамическим. По умолчанию этот узел уже содержит свойства, кото- рые скорее всего понадобится связать с внешними ресурсами. Чтобы вручную до- бавить свойства в этот список, щелкните кнопку рядом с (Advanced). Чтобы заставить некоторое свойство динамически читать значение из конфигу- рационного файла, необходимо предоставить ключ. Он автоматически записывает- ся в конфигурационный файл и идентифицирует нужное значение. Вот пример эле- мента, который Visual Studio .NET добавила в .config-файл, чтобы сделать свойство ButlonLText динамическим: Odd key="Button1.Text" value="Button1" /> Приложение использует значение ключа (ButtonI. Text) для извлечения значения (Button!) свойства Buttonl.Text во время выполнения. Поскольку значения ключей должны быть понятны человеку, их лучше создавать по определенной схеме. В Visual Studio .NET по умолчанию действует схема следующего вида: <имя_элемента_уп~ равления>. < имя_динамического_своиства>. Любые динамические свойства можно модифицировать после развертывания приложения, непосредственно редактируя конфигурационный файл. Например, чтобы изменить значение свойства Buttonl.Text с «Button 1» на «myButton», доста- точно найти и отредактировать соответствующий элемент .config-файла. При сле- дующем запуске приложения из конфигурационного файла будет прочитано новое значение для данного свойства. > Определение динамических свойств через окно Properties 1. В окне дизайнера выберите нужный элемент управления. 2. В окне Properties раскройте узел Dynamic Properties. 3. Если требуемое свойство уже есть в списке этого узле, щелкните кнопку рядом с его именем и введите ключ для этого свойства. 4. Если же это свойство еще не добавлено в список узла Dynamic Properties, щелк- ните кнопку рядом со строкой (Advanced) — откроется окно Dynamic Properties. 5. В окне Dynamic Properties щелкните свойство, которое вы хотите сделать дина- мическим, и выберите для него ключ из раскрывающегося списка, — значения выбранных свойств и указанные для них ключи записываются в конфигураци- онный файл. Примечание В списке узла Dynamic Properties доступны не все свойства. По- скольку в конфигурационных файлах значения свойств хранятся в виде строк, динамическими можно сделать лишь свойства строкового или иного типа, кото- рый удастся явно преобразовать в строковый. > Как установить динамическое свойство приложения после его развертывания 1. Откройте конфигурационный файл приложения в Блокноте или в другом тек- стовом редакторе. 2. Найдите элемент свойства, которое следует модифицировать. 3. Отредактируйте атрибут Value этого элемента, записав в него требуемое значе- ние. Примечание Значения свойств, которые по своей сущности не являются стро- ковыми, например булевы свойства, следует задавать в виде строк, которые при синтаксическом разборе дают значения требуемого типа. Например, значения свойства типа Boolean надо задавать в виде строки true или/a/se. 4. Сохраните и закройте конфигурационный файл. При следующем запуске при- ложение прочитает из него новое значение свойства.