Table of Contents

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

cfg ICfgRoot

配置根

validator IConfigValidator

验证器

result ValidationResult

验证结果

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

cfg ICfgRoot

配置根

configure Action<ConfigValidationBuilder>

验证规则配置委托

result ValidationResult

验证结果

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

cfg ICfgRoot

配置根

validator IConfigValidator

验证器

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

cfg ICfgRoot

配置根

configure Action<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

cfg ICfgRoot

配置根

validator IConfigValidator

验证器

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

cfg ICfgRoot

配置根

configure Action<ConfigValidationBuilder>

验证规则配置委托

Examples

try
{
    cfg.ValidateAndThrow(v => v
        .Required("Database:ConnectionString")
        .Range("Database:Port", 1, 65535));
}
catch (ConfigValidationException ex)
{
    Console.WriteLine($"配置验证失败: {ex.Message}");
}

Exceptions

ConfigValidationException

验证失败时抛出