Class CfgRootValidationExtensions
- Namespace
- Apq.Cfg.Validation
- Assembly
- Apq.Cfg.dll
ICfgRoot 验证扩展方法
public static class CfgRootValidationExtensions
- Inheritance
-
CfgRootValidationExtensions
- Inherited Members
Methods
TryValidate(ICfgRoot, IConfigValidator, out ValidationResult)
尝试验证配置
public static bool TryValidate(this ICfgRoot cfg, IConfigValidator validator, out ValidationResult result)
Parameters
cfgICfgRoot配置根
validatorIConfigValidator验证器
resultValidationResult验证结果
Returns
- bool
验证是否通过
Examples
if (cfg.TryValidate(validator, out var result))
{
Console.WriteLine("配置验证通过");
}
else
{
Console.WriteLine($"配置验证失败,共 {result.ErrorCount} 个错误");
}
TryValidate(ICfgRoot, Action<ConfigValidationBuilder>, out ValidationResult)
尝试验证配置
public static bool TryValidate(this ICfgRoot cfg, Action<ConfigValidationBuilder> configure, out ValidationResult result)
Parameters
cfgICfgRoot配置根
configureAction<ConfigValidationBuilder>验证规则配置委托
resultValidationResult验证结果
Returns
- bool
验证是否通过
Examples
if (cfg.TryValidate(v => v.Required("Database:ConnectionString"), out var result))
{
Console.WriteLine("配置验证通过");
}
else
{
Console.WriteLine($"配置验证失败,共 {result.ErrorCount} 个错误");
}
Validate(ICfgRoot, IConfigValidator)
使用指定的验证器验证配置
public static ValidationResult Validate(this ICfgRoot cfg, IConfigValidator validator)
Parameters
cfgICfgRoot配置根
validatorIConfigValidator验证器
Returns
- ValidationResult
验证结果
Examples
var validator = new ConfigValidationBuilder()
.Required("Database:ConnectionString")
.Range("Database:Port", 1, 65535)
.Build();
var result = cfg.Validate(validator);
if (!result.IsValid)
{
foreach (var error in result.Errors)
{
Console.WriteLine($"配置错误: {error}");
}
}
Validate(ICfgRoot, Action<ConfigValidationBuilder>)
使用配置委托验证配置
public static ValidationResult Validate(this ICfgRoot cfg, Action<ConfigValidationBuilder> configure)
Parameters
cfgICfgRoot配置根
configureAction<ConfigValidationBuilder>验证规则配置委托
Returns
- ValidationResult
验证结果
Examples
var result = cfg.Validate(v => v
.Required("Database:ConnectionString")
.Range("Database:Port", 1, 65535)
.Regex("App:Email", @"^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$"));
if (!result.IsValid)
{
foreach (var error in result.Errors)
{
Console.WriteLine($"配置错误: {error}");
}
}
ValidateAndThrow(ICfgRoot, IConfigValidator)
验证配置并在失败时抛出异常
public static void ValidateAndThrow(this ICfgRoot cfg, IConfigValidator validator)
Parameters
cfgICfgRoot配置根
validatorIConfigValidator验证器
Examples
try
{
cfg.ValidateAndThrow(validator);
}
catch (ConfigValidationException ex)
{
Console.WriteLine($"配置验证失败: {ex.Message}");
}
Exceptions
- ConfigValidationException
验证失败时抛出
ValidateAndThrow(ICfgRoot, Action<ConfigValidationBuilder>)
验证配置并在失败时抛出异常
public static void ValidateAndThrow(this ICfgRoot cfg, Action<ConfigValidationBuilder> configure)
Parameters
cfgICfgRoot配置根
configureAction<ConfigValidationBuilder>验证规则配置委托
Examples
try
{
cfg.ValidateAndThrow(v => v
.Required("Database:ConnectionString")
.Range("Database:Port", 1, 65535));
}
catch (ConfigValidationException ex)
{
Console.WriteLine($"配置验证失败: {ex.Message}");
}
Exceptions
- ConfigValidationException
验证失败时抛出