Если вам это нужно, рассмотрите некоторые более продвинутые рамки проверки, например, Блок валидации Enterprise Library.
Если вы хотите сделать это самостоятельно, я бы предложил создать пользовательский атрибут, унаследованный от ValidationAttribute, как этот (частично псевдокод, я уверен, что вы поняли)
public class ConfigurableValidationAttribute: ValidationAttribute
{
public override bool IsValid(object value)
{
string objectType = value.GetType().FullName;
string objectName = GetMyObjectName(value); // interface? reflection?
var validationRules = GetValidationRulesFor(objectType, name); // from your configuration
foreach (var rule in validationRules)
{
ValidationAttribute attr = null;
switch (rule.ValidatorName)
{
case "Required": attr = new RequiredAttribute();
case "StringLength": attr = // you get the idea
}
if (!attr.IsValid(value)) return false;
}
return true;
}
}