XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

XFEExtension.NetCore.AutoConfig

【DLL】自动实现配置文件的存储

公开
关注 0 Fork 0 Star 0
UTF-8
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; }
}