https://peterkellner.net/2009/04/09/reflection-method-parameters-casestatement-dotnet/