ArgumentNullException - como simplificar?

Eu notei que esse código surge muito nos meus construtores:

if (someParam == null) throw new ArgumentNullException("someParam");
if (someOtherParam == null) throw new ArgumentNullException("someOtherParam");
...

Eu tenho alguns construtores onde várias coisas são injetadas e todas devem ser não nulas. Alguém pode pensar em uma maneira de agilizar isso? A única coisa em que consigo pensar é o seguinte:

public static class ExceptionHelpers
{
   public static void CheckAndThrowArgNullEx(IEnumerable<KeyValuePair<string, object>> parameters)
   {
      foreach(var parameter in parameters)
         if(parameter.Value == null) throw new ArgumentNullException(parameter.Key);
   }
}

No entanto, o uso disso seria algo como:

ExceptionHelper.CheckAndThrowArgNullEx(new [] {
    new KeyValuePair<string, object>("someParam", someParam),
    new KeyValuePair<string, object>("someOtherParam", someOtherParam),
    ... });

... o que realmente não ajuda a agilizar o código. Tuple.Create () em vez de KVPs não funciona porque os GTPs da Tuple não são covariantes (embora o GTP do IEnumerable seja). Alguma ideia?

questionAnswers(12)

yourAnswerToTheQuestion