At the moment I'm using a LogicalExpressionVisitor to find all parameters needed in the calculation and all the calculation parameters (recursively), and I then look these up and add them as parameters. The parameters are currently public properties on a plain
object.