Reo.Core.Providers
8.0.529
dotnet add package Reo.Core.Providers --version 8.0.529
NuGet\Install-Package Reo.Core.Providers -Version 8.0.529
<PackageReference Include="Reo.Core.Providers" Version="8.0.529" />
<PackageVersion Include="Reo.Core.Providers" Version="8.0.529" />
<PackageReference Include="Reo.Core.Providers" />
paket add Reo.Core.Providers --version 8.0.529
#r "nuget: Reo.Core.Providers, 8.0.529"
#:package Reo.Core.Providers@8.0.529
#addin nuget:?package=Reo.Core.Providers&version=8.0.529
#tool nuget:?package=Reo.Core.Providers&version=8.0.529
Reo.Core.Providers
[Название пакета] — это набор служб и модулей, предназначенных для реализации типовых сценариев работы с данными, кэширования и бизнес-логики в приложениях на .NET. Пакет предоставляет готовые реализации для работы с сущностями ( например, компаниями, регионами, владельцами объектов), а также интеграцию с кэшированием и зависимостями через DI-контейнер.
Описание пакета
[Описание]
Пакет Reo.Core.Providers решает задачи, связанные с унифицированным доступом к данным, кэшированием и настройкой
сервисов в приложениях. Он предоставляет следующие функции:
- Кэширование данных: Использует кэш для ускорения доступа к часто запрашиваемым сущностям (например, компании, регионы, владельцы объектов).
- Модульность: Делает возможным расширение функционала за счёт добавления новых провайдеров и сервисов.
- Интеграция с DI: Позволяет легко регистрировать сервисы в контейнере зависимостей (например, в ASP.NET Core).
Основные компоненты
| Компонент | Описание |
|---|---|
IAreaProvider / ICompanyProvider / IObjectOwnerProvider |
Интерфейсы для доступа к данным (например, получение информации о регионе, компании, владельце объекта). |
AreaProvider / CompanyProvider / ObjectOwnerProvider |
Реализации интерфейсов, предоставляющие конкретную логику работы с данными и кэшированием. |
ObjectOivProvider |
Сервис для работы с объектами (например, получение списка объектов, фильтрация по критериям). |
AreaProviderCacheOptions / CompanyProviderCacheOptions |
Конфигурационные классы для настройки параметров кэширования. |
Service<T> |
Обобщённый класс для реализации сервисов, использующих кэш и DI. |
Требования
- .NET версии: Совместим с .NET 8.0 и .NET 9.0.
- Зависимости:
Microsoft.Extensions.Caching.MemoryMicrosoft.Extensions.DependencyInjectionReo.Core.Common(если используется в составе других библиотек Reo.Core).
Установка
NuGet Package Manager
Install-Package Reo.Core.Providers
.NET CLI
dotnet add package Reo.Core.Providers
Настройка
Регистрация сервисов в DI-контейнере (ASP.NET Core)
public void ConfigureServices(IServiceCollection services)
{
services.AddMemoryCache(); // Инициализация кэша
services.AddAreaProvider(); // Регистрация AreaProvider
services.AddCompanyProvider(); // Регистрация CompanyProvider
services.AddObjectOwnerProvider(); // Регистрация ObjectOwnerProvider
}
Конфигурационные параметры (appsettings.json)
{
"AreaProviderCacheOptions": {
"CacheDurationInSeconds": 3600
},
"CompanyProviderCacheOptions": {
"CacheDurationInSeconds": 7200
}
}
Использование
Пример 1: Получение данных через провайдер
public class MyService
{
private readonly IAreaProvider _areaProvider;
public MyService(IAreaProvider areaProvider)
{
_areaProvider = areaProvider;
}
public async Task<Area> GetAreaByIdAsync(int id)
{
return await _areaProvider.GetByIdAsync(id);
}
}
Пример 2: Использование кэширования
public class CompanyService
{
private readonly ICompanyProvider _companyProvider;
public CompanyService(ICompanyProvider companyProvider)
{
_companyProvider = companyProvider;
}
public async Task<List<Company>> GetAllCompaniesAsync()
{
return await _companyProvider.GetAllAsync();
}
}
Пример 3: Настройка кэша через DI
public void ConfigureServices(IServiceCollection services)
{
services.AddMemoryCache();
services.Configure<AreaProviderCacheOptions>(Configuration.GetSection("AreaProviderCacheOptions"));
services.AddAreaProvider();
}
Лицензия
Этот пакет распространяется под лицензией MIT License.
См. файл LICENSE для подробностей.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net8.0
- AspNetCore.HealthChecks.Elasticsearch (>= 8.0.1)
- AspNetCore.HealthChecks.Redis (>= 8.0.1)
- AspNetCore.HealthChecks.UI.Client (>= 8.0.1)
- AutoMapper (>= 11.0.1 && < 15.0.0)
- FluentValidation (>= 11.11.0)
- FluentValidation.AspNetCore (>= 11.3.1)
- Flurl (>= 4.0.0)
- Flurl.Http (>= 4.0.2)
- Flurl.Http.Newtonsoft (>= 0.9.1)
- Humanizer (>= 2.14.1)
- Humanizer.Core (>= 2.14.1)
- Humanizer.Core.ru (>= 2.14.1)
- IdentityModel (>= 7.0.0)
- JetBrains.Annotations (>= 2025.2.0)
- LinqKit.Core (>= 1.2.8)
- MassTransit (>= 8.5.2 && < 9.0.0)
- MassTransit.RabbitMQ (>= 8.5.2 && < 9.0.0)
- Microsoft.AspNetCore.Authentication.JwtBearer (>= 8.0.19)
- Microsoft.AspNetCore.Authentication.OpenIdConnect (>= 8.0.19)
- Microsoft.AspNetCore.Mvc.NewtonsoftJson (>= 8.0.19)
- Microsoft.Bcl.AsyncInterfaces (>= 9.0.8)
- Microsoft.CSharp (>= 4.7.0)
- Microsoft.EntityFrameworkCore (>= 9.0.8)
- Microsoft.Extensions.Caching.Abstractions (>= 9.0.8)
- Microsoft.Extensions.Caching.Memory (>= 9.0.8)
- Microsoft.Extensions.Caching.StackExchangeRedis (>= 9.0.8)
- Microsoft.Extensions.Configuration (>= 9.0.8)
- Microsoft.Extensions.Configuration.Abstractions (>= 9.0.8)
- Microsoft.Extensions.Configuration.Binder (>= 9.0.8)
- Microsoft.Extensions.DependencyInjection (>= 9.0.8)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 9.0.8)
- Microsoft.Extensions.Hosting.Abstractions (>= 9.0.8)
- Microsoft.Extensions.Http.Polly (>= 9.0.8)
- Microsoft.Extensions.Logging (>= 9.0.8)
- Microsoft.Extensions.Logging.Abstractions (>= 9.0.8)
- Microsoft.Extensions.Options (>= 9.0.8)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 9.0.8)
- NEST (>= 7.17.5)
- NEST.JsonNetSerializer (>= 7.17.5)
- Newtonsoft.Json (>= 13.0.3)
- Polly (>= 8.5.0)
- RabbitMQ.Client (>= 7.1.2)
- RedLock.net (>= 2.3.2)
- Reo.Core.Application.Abstractions (>= 8.0.529)
- Reo.Core.Elastic (>= 8.0.529)
- Reo.Core.FileStorage (>= 8.0.529)
- stbychkov.AutoLoggerMessage (>= 1.0.13)
- Swashbuckle.AspNetCore (>= 9.0.3)
- System.Collections.Immutable (>= 9.0.8)
- System.ComponentModel.Annotations (>= 5.0.0)
- System.IO.Abstractions (>= 22.0.15)
- System.IO.Pipelines (>= 9.0.8)
- System.Text.Encodings.Web (>= 9.0.8)
- System.Text.Json (>= 9.0.8)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 8.0.529 | 208 | 9/4/2025 |
| 8.0.528 | 211 | 9/4/2025 |
| 8.0.527 | 202 | 9/4/2025 |
| 8.0.526 | 207 | 9/3/2025 |
| 8.0.525 | 188 | 9/2/2025 |
| 8.0.524 | 192 | 9/2/2025 |
| 8.0.523 | 185 | 9/2/2025 |
| 8.0.522 | 242 | 8/28/2025 |
| 8.0.521 | 233 | 8/27/2025 |
| 8.0.520 | 242 | 8/27/2025 |
| 6.0.529 | 198 | 9/4/2025 |
| 6.0.528 | 200 | 9/4/2025 |
| 6.0.527 | 209 | 9/4/2025 |
| 6.0.526 | 211 | 9/3/2025 |
| 6.0.525 | 183 | 9/2/2025 |
| 6.0.524 | 179 | 9/2/2025 |
| 6.0.523 | 172 | 9/2/2025 |
| 6.0.522 | 239 | 8/28/2025 |
| 6.0.521 | 221 | 8/27/2025 |
| 6.0.520 | 231 | 8/27/2025 |