Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
⊗csSpPjPr 391 of 509 menu
◀ ▶

Ссылка ProjectReference в C#

Крупное приложение делят на проекты: библиотека с доменной логикой и исполняемый клиент. Сборка библиотеки компилируется отдельно, а клиент получает её типы через ссылку ProjectReference в csproj.

Система сборки MSBuild сначала собирает зависимые проекты, затем подставляет путь к их сборкам. Так версии API библиотеки и клиента остаются согласованными в одном solution.

Библиотека Pricing форматирует суммы, клиент ConsoleApp вызывает её из точки входа:

<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <TargetFramework>net10.0</TargetFramework> <ImplicitUsings>enable</ImplicitUsings> <Nullable>enable</Nullable> </PropertyGroup> </Project>

В библиотеке объявим статический форматтер цены:

namespace Pricing; public static class MoneyFormat { public static string Rubles(int kopecks) => $"{kopecks / 100}.{kopecks % 100:00}"; }

Клиент ссылается на проект библиотеки:

<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>net10.0</TargetFramework> <ImplicitUsings>enable</ImplicitUsings> <Nullable>enable</Nullable> </PropertyGroup> <ItemGroup> <ProjectReference Include="..\Lib\Pricing.csproj" /> </ItemGroup> </Project>

Консольный клиент вызывает публичный API связанной библиотеки:

Console.WriteLine(Pricing.MoneyFormat.Rubles(199)); namespace Pricing { public static class MoneyFormat { public static string Rubles(int kopecks) => $"{kopecks / 100}.{kopecks % 100:00}"; } }

Цена собрана из 199 копеек. В solution типы библиотеки собираются отдельно; здесь они показаны в одном файле для наглядности.

Добавьте библиотеку Units с методом, переводящим граммы в килограммы (деление на 1000), и выведите результат для массы 2500 г из консольного клиента.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить