Чтение онлайн

ЖАНРЫ

Язык программирования C#9 и платформа .NET5
Шрифт:

Итак, .NET Standard — все еще хороший механизм для использования существующего кода в более новых приложениях, но он не является панацеей.

Конфигурирование приложений

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

На заметку! В предшествующих версиях .NET Framework конфигурация приложений базировалась на файле XML по имени

арр.config
(или
web.config
для приложений ASP.NET). Хотя конфигурационные XML-файлы по-прежнему можно применять, как будет показано в текущем разделе, главный способ конфигурирования приложений .NET Core предусматривает использование файлов JSON (JavaScript Object Notation — запись объектов JavaScript). Конфигурация будет подробно обсуждаться в главах, посвященных WPF и ASP.NET Core.

Чтобы ознакомиться с процессом, создайте новый проект консольного приложения .NET Core по имени

FunWithConfiguration
и добавьте к нему ссылку на пакет
Microsoft.Extensions.Configuration.Json
:

dotnet new console -lang c# -n FunWithConfiguration

– o .\FunWithConfiguration -f net5.0

dotnet add FunWithConfiguration

package Microsoft.Extensions.Configuration.Json

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

appsettings.json
. Модифицируйте файл проекта, обеспечив копирование этого файла в выходной каталог при каждой компиляции проекта:

<ItemGroup>

<None Update="appsettings.json">

<CopyToOutputDirectory>Always</CopyToOutputDirectory>

</None>

</ItemGroup>

Приведите содержимое файла

appsettings.json
к следующему виду:

{

"CarName": "Suzy"

}

На заметку! Если вы не знакомы с форматом JSON, то знайте, что он представляет собой формат с парами "имя-значение" и объектами, заключенными в фигурные скобки. Целый файл может быть прочитан как один объект, а подобъекты тоже помечаются с помощью фигурных скобок. Позже в книге вы будете иметь дело с более сложными файлами JSON.

Финальный шаг связан с чтением конфигурационного файла и получением значения

CarName
. Обновите операторы
using
в файле
Program.cs
, как показано ниже:

using System;

using System.IO;

using Microsoft.Extensions.Configuration;

Модифицируйте метод

Main
следующим образом:

static void Main(string[] args)

{

IConfiguration config = new ConfigurationBuilder

.SetBasePath(Directory.GetCurrentDirectory)

.AddJsonFile("appsettings.json", true, true)

.Build;

}

Новая

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

Имея экземпляр реализации

IConfiguration
, вы можете обращаться с ним так, как принято в версии .NET 4.8. Добавьте приведенный далее код в конец метода
Main
и после запуска приложения вы увидите, что значение будет выведено на консоль:

Console.WriteLine($"My car's name is {config["CarName"]}");

Console.ReadLine;

В дополнение к файлам JSON существуют пакеты для поддержки переменных среды, Azure Key Vault, аргументов командной строки и многого другого. Подробные сведения ищите в документации по .NET Core.

Построение и потребление библиотеки классов .NET Core

Чтобы заняться исследованием мира библиотек классов .NET Core, будет создана сборка

*.dll
(по имени
CarLibrary
), содержащая небольшой набор открытых типов. Для начала создайте решение. Затем создайте проект библиотеки классов по имени
CarLibrary
и добавьте его в решение, если это еще не делалось.

dotnet new sln -n Chapter16_AllProjects

dotnet new classlib -lang c# -n CarLibrary -o .\CarLibrary -f net5.0

dotnet sln .\Chapter16_AllProjects.sln add .\CarLibrary

Первая команда создает в текущем каталоге пустой файл решения по имени

Chapterl6_AllProjects
(
– n
). Вторая команда создает новый проект библиотеки классов .NET 5.0 (
– f
) под названием
CarLibrary
(
– n
) в подкаталоге
CarLibrary
(
– о
). Указывать выходной подкаталог (
– о
) необязательно. Если он опущен, то проект будет создан в подкаталоге с таким же именем, как у проекта. Третья команда добавляет новый проект к решению.

На заметку! Интерфейс командной строки .NET Core снабжен хорошей справочной системой. Для получения сведений о любой команде укажите с ней

– h
. Например, чтобы увидеть все шаблоны, введите
dotnet new -h
. Для получения дополнительной информации о создании проекта библиотеки классов введите
dotnet new classlib -h
.

После создания проекта и решения вы можете открыть его в Visual Studio (или Visual Studio Code), чтобы приступить к построению классов. Открыв решение, удалите автоматически сгенерированный файл

Class1.cs
. Проектное решение библиотеки для работы с автомобилями начинается с создания перечислений
EngineStateEnum
и
MusicMediaEnum
. Добавьте в проект два файла с именами
MusicMediaEnum.cs
и
EngineStateEnum.cs
и поместите в них следующий код:

Поделиться с друзьями: