Validator
Associates a property with a method that validates that property.
Parameters
T
the type of property
validate
the method by which the property is validated, which returns null
if the property is valid, and returns ValidationInfo otherwise