using System.ComponentModel.DataAnnotations; namespace ShrlAlgoToolkit.RevitAddins.Attributes; [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter)] public sealed class MinimumAttribute : ValidationAttribute { public MinimumAttribute(double minValue = 0) { MinValue = minValue; } public double MinValue { get; } protected override ValidationResult IsValid(object value, ValidationContext validationContext) { return double.TryParse(value.ToString(), out var d) && d >= MinValue ? ValidationResult.Success : new ValidationResult($"最小值应为{MinValue}"); } }