Files
Shrlalgo.RvKits/ShrlAlgoToolkit.Mvvm/Attributes/GreaterThanAttribute.cs
2025-04-24 20:56:44 +08:00

23 lines
787 B
C#

using System.ComponentModel.DataAnnotations;
namespace ShrlAlgoToolkit.Mvvm.Attributes;
[AttributeUsage(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter)]
public sealed class GreaterThanAttribute : ValidationAttribute
{
public GreaterThanAttribute(string propertyName)
{
PropertyName = propertyName;
}
public string PropertyName { get; }
protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
object instance = validationContext.ObjectInstance,
otherValue = instance.GetType().GetProperty(PropertyName).GetValue(instance);
return ((IComparable)value).CompareTo(otherValue) > 0 ? ValidationResult.Success : new($"当前值小于{value}");
}
}