using System; namespace ChadSoft.Validators { [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field, AllowMultiple = false, Inherited = true)] public class RequiredFieldValidatorAttribute : ValidatorAttribute { public override bool IsValid(object val) { // if the value is null, the test fails! if(val == null) return false; var isValid = false; if (val is String) isValid = !string.IsNullOrEmpty((string)val); else if (val is DateTime) isValid = ((DateTime)val) != DateTime.MinValue; else if (val is Guid) isValid = ((Guid)val) != Guid.Empty; else if(val.GetType().IsValueType) isValid = val != Activator.CreateInstance(val.GetType()); else isValid = val != null; return isValid; } } }