Oui, il peut être fait - mais vous allez manquer un moyen de communiquer plus d'informations sur les règles qui ont été violés dans le cas d'erreurs de validation. NHibernate Validator, à ma connaissance, permet uniquement de spécifier un message texte, le nom de la classe et, dans le cas des attributs de validation au niveau de la propriété, le nom de la propriété violée.
Si votre attribut HasSelfValidationAttribute
mettre en œuvre IRuleArgs
pointant vers un IValidator
(ou IInitializableValidator
), il n'a aucun moyen de communiquer de nouveau quoi que ce soit d'autre mais un simple et le nom de la classe, ce qui serait probablement trop peu d'informations si votre demande est valider les "règles métier réelles". NHibernate Validator est idéal pour la validation simple portée aux propriétés d'une classe, mais elle est courte lorsque vous avez besoin de faire une validation plus complexe.