DemoSettingsOptions.cs 1.04 KB
using Microsoft.Extensions.Configuration;
using NCC.ConfigurableOptions;
using System;
using System.ComponentModel.DataAnnotations;

namespace NCC.Common.Extensions
{
    /// <summary>
    /// Demo配置选项
    /// </summary>
    public sealed class DemoSettingsOptions : IConfigurableOptions<DemoSettingsOptions>
    {

        /// <summary>
        /// 名称
        /// </summary>
        [Required]
        public string AntisSoftName { get; set; }

        /// <summary>
        /// 允许Ips
        /// </summary>
        public string[] AllowIps { get; set; }
        /// <summary>
        /// Bool值
        /// </summary>
        public bool? AllowDemoBool { get; set; }

        /// <summary>
        ///  过期时间
        /// </summary>
        public int? SetPreflightMaxAge { get; set; }



        public void PostConfigure(DemoSettingsOptions options, IConfiguration configuration)
        {
            AntisSoftName ??= "App.AntisSoft";
            AllowIps ??= Array.Empty<string>();
            AllowDemoBool ??= true;
        }
    }
}