Добавил:
выбрасываю тут свой мусор, надеюсь, что он кому-то может пригодится... Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
OOP-KONEChNYJ.docx
Скачиваний:
20
Добавлен:
03.12.2023
Размер:
7.72 Mб
Скачать
  1. Конфигурирование net - приложений. Назначение файлов Machine.Config, App.Config, App.Exe.Config

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

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

Исторически сложилось, что конфигурирование приложения - одна из наиболее классических задач, с которой сталкиваются разработчики приложений.

Платформа .NET Framework решает этот вопрос – в рамках платформы существует стандартный способ хранения конфигурации. В качестве формата для хранения настроек используется формат XML. Использование XML в качестве формата файла конфигурации обладает рядом преимуществ:

  • он имеет иерархическую структуру, что, несомненно, удобно для хранения настроек приложения;

  • файл XML, по сути, является текстовым файлом, что означает, что настраивать приложения .NET можно используя любой текстовой редактор.

machine.config.

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

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

var value = System.Configuration.ConfigurationManager.AppSettings["Key"].ToString();

App.exe.config – создается из App.config при развертке приложения, находится в одной папке с .exe. App.config используется только в среде разработки.

  1. Понятие и назначение делегата. Пример использования делегата в ооп на c#.

Делегат представляет собой объект, который может ссылаться на метод. Следовательно, когда создается делегат, то в итоге получается объект, содержащий ссылку на метод.

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

  • адрес метода, на котором он вызывается;

  • типы аргументов (если есть) этого метода;

  • тип возвращаемого значения этого метода.

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

Определение типа делегата в C#

Тип делегата объявляется с помощью ключевого слова delegate. Ниже приведена общая форма объявления делегата:

delegate возвращаемый_тип имя (список_параметров);

Пример: delegate int Transformer (int x);

где возвращаемый_тип обозначает тип значения, возвращаемого методами, которые будут вызываться делегатом; имя — конкретное имя делегата; список_параметров — параметры, необходимые для методов, вызываемых делегатом. Как только будет создан экземпляр делегата, он может вызывать и ссылаться на те методы, возвращаемый тип и параметры которых соответствуют указанным в объявлении делегата.

Чтобы использовать делегат нужно создать экземпляр делегата — объект, который и будет ссылать на один или несколько методов. При создании экземпляра делегата ему в качестве параметра передается имя (только имя, без параметров) метода, на который он ссылается:

Transformer t = Square;

Где Square – название метода.

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

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

Соседние файлы в предмете Объектно-ориентированное программирование