I've recently been using (oh, and contributing a little towards!) NSpectre: an open source declarative validation framework developed primarily by my colleague MarkB. A little blurb from the NSpectre homepage:
nspectre uses templating and run-time code generation to provide .NET developers with a means to specify their validations declaratively. Consolidating the validation logic reduces duplication and the number of lines of code to write and maintain. The use of templates facilitates reuse of common logic within and across projects.
NSpectre is very simple to use once you get used to the configuration schema. New rules are simple to create and the generated code (compiled and referenced at run-time) is blazingly performant. Hopefully soon I'll be introducing a couple of new features with the most notable of these being debug support for the generated code and an XSD schema for the configuration file format which will provide intellisense support within the VS.NET IDE.