Шрифт:
Интервал:
Закладка:
Итак, .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;
(window.adrunTag = window.adrunTag || []).push({v: 1, el: 'adrun-4-390', c: 4, b: 390})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.
- Понимание SQL - Мартин Грубер - Базы данных