![]() |
VOOZH | about |
dotnet add package Reo.Core.ConfigValidation --version 10.0.210
NuGet\Install-Package Reo.Core.ConfigValidation -Version 10.0.210
<PackageReference Include="Reo.Core.ConfigValidation" Version="10.0.210" />
<PackageVersion Include="Reo.Core.ConfigValidation" Version="10.0.210" />Directory.Packages.props
<PackageReference Include="Reo.Core.ConfigValidation" />Project file
paket add Reo.Core.ConfigValidation --version 10.0.210
#r "nuget: Reo.Core.ConfigValidation, 10.0.210"
#:package Reo.Core.ConfigValidation@10.0.210
#addin nuget:?package=Reo.Core.ConfigValidation&version=10.0.210Install as a Cake Addin
#tool nuget:?package=Reo.Core.ConfigValidation&version=10.0.210Install as a Cake Tool
Пакет Reo.Core.ConfigValidation предназначен для проверки соответствия структуры конфигурации приложения заданным требованиям. Он позволяет:
Пакет решает проблему несоответствия между ожидаемой и фактической структурой конфигурации, что особенно важно для приложений с высокими требованиями к надежности и корректности настроек.
Интерфейс, определяющий методы для проверки конфигурации. Основной метод: Validate() — выполняет сравнение структуры
конфигурации.
Реализация интерфейса IMatchingConfigValidatorService. Отвечает за:
Класс, представляющий структуру конфигурации в виде графа. Содержит методы для:
SectionA--SectionB).Интерфейс для создания графа конфигурации. Используется для инкапсуляции логики построения графа.
Реализация IConfigSectionGraphCreator, которая:
Реализация IConfigSectionGraphCreator, которая:
appsettings.json).Microsoft.Extensions.ConfigurationMicrosoft.Extensions.LoggingSystem.IO.Abstractions (для работы с файловой системой)Install-Package Reo.Core.ConfigValidation
dotnet add package Reo.Core.ConfigValidation
Добавьте сервис в Startup.cs или Program.cs:
services.AddSingleton<IMatchingConfigValidatorService, MatchingConfigValidatorService>();
required-config.json с описанием обязательных разделов:{
"RequiredSections": [
"SectionA",
"SectionB/SectionC"
]
}
appsettings.json:{
"ConfigValidation": {
"RequiredConfigFilePath": "path/to/required-config.json"
}
}
public class ConfigValidator
{
private readonly IMatchingConfigValidatorService _validator;
public ConfigValidator(IMatchingConfigValidatorService validator)
{
_validator = validator;
}
public void ValidateConfiguration()
{
try
{
_validator.Validate();
Console.WriteLine("Конфигурация прошла проверку!");
}
catch (RequiredConfigSectionNotFoundException ex)
{
Console.WriteLine($"Ошибка: {ex.Message}");
}
}
}
required-config.json{
"RequiredSections": [
"Database/ConnectionStrings",
"Logging/LogLevel",
"Services/ExternalApi"
]
}
Если в appsettings.json отсутствует раздел Database/ConnectionStrings, будет сгенерировано исключение:
throw new RequiredConfigSectionNotFoundException(new List<string> { "Database--ConnectionStrings" });
Данный пакет распространяется под лицензией MIT.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 net10.0 is compatible. net10.0-android net10.0-android was computed. net10.0-browser net10.0-browser was computed. net10.0-ios net10.0-ios was computed. net10.0-maccatalyst net10.0-maccatalyst was computed. net10.0-macos net10.0-macos was computed. net10.0-tvos net10.0-tvos was computed. net10.0-windows net10.0-windows was computed. |
This package is not used by any NuGet packages.
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 10.0.210 | 0 | 6/18/2026 |
| 10.0.209 | 56 | 6/17/2026 |
| 10.0.208 | 67 | 6/17/2026 |
| 10.0.207 | 62 | 6/17/2026 |
| 10.0.206 | 62 | 6/17/2026 |
| 10.0.205 | 87 | 6/16/2026 |
| 10.0.204 | 85 | 6/16/2026 |
| 10.0.203 | 84 | 6/16/2026 |
| 10.0.202 | 83 | 6/16/2026 |
| 10.0.201 | 85 | 6/16/2026 |
| 10.0.200 | 80 | 6/16/2026 |
| 10.0.199 | 78 | 6/16/2026 |
| 10.0.198 | 75 | 6/16/2026 |
| 10.0.197 | 109 | 6/16/2026 |
| 10.0.196 | 85 | 6/16/2026 |
| 10.0.195 | 92 | 6/15/2026 |
| 10.0.194 | 95 | 6/15/2026 |
| 10.0.193 | 94 | 6/15/2026 |
| 10.0.192 | 92 | 6/11/2026 |
| 10.0.191 | 91 | 6/11/2026 |