Reo.Core.Queue.Validator
8.0.799
dotnet add package Reo.Core.Queue.Validator --version 8.0.799
NuGet\Install-Package Reo.Core.Queue.Validator -Version 8.0.799
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Reo.Core.Queue.Validator" Version="8.0.799" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Reo.Core.Queue.Validator" Version="8.0.799" />
<PackageReference Include="Reo.Core.Queue.Validator" />
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Reo.Core.Queue.Validator --version 8.0.799
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Reo.Core.Queue.Validator, 8.0.799"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Reo.Core.Queue.Validator@8.0.799
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Reo.Core.Queue.Validator&version=8.0.799
#tool nuget:?package=Reo.Core.Queue.Validator&version=8.0.799
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
Reo.Core.Queue.Validator
Описание пакета
Пакет Reo.Core.Queue.Validator предназначен для проверки существования очередей в системе сообщений (например, RabbitMQ) на этапе запуска приложения. Это позволяет избежать ошибок, связанных с отсутствием необходимых очередей, и обеспечивает стабильность приложения.
Решаемые проблемы:
- Обнаружение отсутствующих очередей до запуска критически важных компонентов.
- Интеграция с FluentValidation для удобного формирования сообщений об ошибках.
- Автоматическая регистрация сервисов в DI-контейнере ASP.NET Core.
Функции:
- Асинхронная проверка существования очередей.
- Поддержка настройки через атрибуты (
QueueNameAttribute). - Логирование ошибок через
ILogger.
Основные компоненты
| Компонент | Описание |
|---|---|
IQueueExistsValidator |
Интерфейс, определяющий метод ValidateAsync, который проверяет существование всех зарегистрированных очередей. |
QueueExistsValidator |
Реализация валидатора, использующая IServiceBusClient для проверки очередей и IQueueNameStorage для получения списка имен очередей. |
IQueueNameStorage |
Интерфейс для получения списка имен очередей, зарегистрированных в приложении. |
AssemblyQueueNameStorage |
Реализация, которая сканирует сборки и ищет типы с атрибутом QueueNameAttribute для определения имен очередей. |
IServiceBusClient |
Интерфейс для взаимодействия с шиной данных (RabbitMQ). |
RabbitMqServiceBusClient |
Реализация клиента для проверки существования очередей в RabbitMQ. |
Требования
- .NET версии: .NET 8.0, .NET 9.0
- Зависимости:
FluentValidation(для генерации ошибок валидации)RabbitMQ.Client(для работы с RabbitMQ)Microsoft.Extensions.Logging(для логирования)
Установка
NuGet Package Manager
Install-Package Reo.Core.Queue.Validator
.NET CLI
dotnet add package Reo.Core.Queue.Validator
Настройка
Регистрация в DI-контейнере (ASP.NET Core)
Добавьте зависимости в Startup.cs или Program.cs:
services.AddQueueValidator<MyQueueHandlerAssembly>();
или с явным указанием сборки:
services.AddQueueValidator(Assembly.Load("MyQueueHandlers"));
Конфигурационные параметры:
- Используйте атрибут
[QueueName("my-queue-name")]на типах, чтобы указать имя очереди. - Настройка логирования через
ILoggerавтоматически интегрируется в приложение.
Использование
Пример 1: Проверка очередей при запуске приложения
public class MyService
{
private readonly IQueueExistsValidator _validator;
public MyService(IQueueExistsValidator validator)
{
_validator = validator;
}
public async Task InitializeAsync()
{
var result = await _validator.ValidateAsync();
if (!result.IsValid)
{
throw new InvalidOperationException("Несуществующие очереди: " + string.Join(", ", result.Errors));
}
}
}
Пример 2: Использование в middleware (ASP.NET Core)
app.Use(async (context, next) =>
{
var validator = context.RequestServices.GetRequiredService<IQueueExistsValidator>();
var result = await validator.ValidateAsync();
if (!result.IsValid)
{
context.Response.StatusCode = 500;
await context.Response.WriteAsync("Ошибка: " + string.Join(", ", result.Errors));
return;
}
await next();
});
Лицензия
Данный пакет распространяется под лицензией MIT.
| 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. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net8.0
- FluentValidation (>= 11.11.0)
- JetBrains.Annotations (>= 2025.2.4)
- Microsoft.Extensions.Configuration (>= 10.0.1)
- Microsoft.Extensions.Configuration.Abstractions (>= 10.0.1)
- Microsoft.Extensions.Configuration.Binder (>= 10.0.1)
- Microsoft.Extensions.DependencyInjection (>= 10.0.1)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.1)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.1)
- Microsoft.Extensions.Http.Polly (>= 10.0.1)
- Microsoft.Extensions.Logging (>= 10.0.1)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.1)
- Microsoft.Extensions.Options (>= 10.0.1)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 10.0.1)
- Polly (>= 8.5.0)
- RabbitMQ.Client (>= 7.2.0)
- Reo.Core.Extensions (>= 8.0.799)
- Reo.Core.Queue.Abstractions (>= 8.0.799)
- stbychkov.AutoLoggerMessage (>= 1.0.15)
- System.IO.Pipelines (>= 10.0.1)
- System.Linq.Async (>= 7.0.0)
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.799 | 107 | 1/13/2026 |
| 8.0.798 | 99 | 1/12/2026 |
| 8.0.797 | 99 | 1/12/2026 |
| 8.0.795 | 116 | 12/30/2025 |
| 8.0.794 | 104 | 12/30/2025 |
| 8.0.793 | 108 | 12/29/2025 |
| 8.0.792 | 105 | 12/29/2025 |
| 8.0.789 | 191 | 12/25/2025 |
| 8.0.788 | 191 | 12/25/2025 |
| 8.0.787 | 187 | 12/25/2025 |
| 8.0.786 | 194 | 12/24/2025 |
| 8.0.785 | 191 | 12/24/2025 |
| 8.0.784 | 190 | 12/24/2025 |
| 8.0.783 | 190 | 12/24/2025 |
| 8.0.782 | 184 | 12/24/2025 |
| 8.0.781 | 192 | 12/23/2025 |
| 8.0.780 | 181 | 12/23/2025 |
| 8.0.779 | 196 | 12/23/2025 |
| 8.0.778 | 184 | 12/23/2025 |
| 8.0.777 | 183 | 12/23/2025 |
Loading failed