Я думаю, что самый простой способ сделать это с помощью блока приложения валидации - создать свойство, которое возвращает DateTime.Now, а затем использовать валидатор сравнения свойств.
SelfValidation также позволит вам делать то, что вы хотите. Валидатор сравнения свойств позволяет вам выводить логику, но он неправильно вводит свойство для сравнения.
Осуществление
public class Person
{
public DateTime Now
{
get { return DateTime.Now; }
}
public DateTime BirthDate
{
get;
set;
}
}
<type assemblyName="MyApp.Entities, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" name="MyApp.Entities.Person">
<ruleset name="MyRuleSet">
<properties>
<property name="BirthDate">
<validator operator="LessThanEqual" propertyToCompare="Now" negated="false"
messageTemplate="I don't know nothin' about birthin' no babies in the future." messageTemplateResourceName=""
messageTemplateResourceType="" tag="" type="Microsoft.Practices.EnterpriseLibrary.Validation.Validators.PropertyComparisonValidator, Microsoft.Practices.EnterpriseLibrary.Validation, Version=4.1.0.0, Culture=neutral, PublicKeyToken=null"
name="Property Comparison Validator" />
</property>
</properties>
</ruleset>
</type>