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