В итоге я использовал CuttingEdge Conditions, найденный на Codeplex.
напр.
// Check all preconditions:
Condition.Requires(id, "id")
.IsNotNull() // throws ArgumentNullException on failure
.IsInRange(1, 999) // ArgumentOutOfRangeException on failure
.IsNotEqualTo(128); // throws ArgumentException on failure
приятно :)
Вот , использующий выражения. Поскольку это довольно тривиально, кажется, что у каждого есть своя реализация этого ...