namespace XFEExtension.NetCore.AutoConfig;
///
/// 配置验证结果。
///
public readonly record struct ProfileValidationResult(bool IsValid, string? ErrorMessage)
{
/// 验证成功。
public static ProfileValidationResult Success { get; } = new(true, null);
/// 创建验证失败结果。
public static ProfileValidationResult Failure(string errorMessage)
{
ArgumentException.ThrowIfNullOrWhiteSpace(errorMessage);
return new ProfileValidationResult(false, errorMessage);
}
}
///
/// 加载或导入的配置未通过验证。
///
public sealed class ProfileValidationException : Exception
{
/// 创建配置验证异常。
public ProfileValidationException(Type profileType, string errorMessage)
: base($"配置类型 {profileType.FullName} 验证失败:{errorMessage}")
{
ProfileType = profileType;
ValidationError = errorMessage;
}
/// 验证失败的配置类型。
public Type ProfileType { get; }
/// 验证错误。
public string ValidationError { get; }
}