This is where the magic happens - I'm using MVC's built-in `ExpressionHelper.GetExpressionText` method.

It's a lot of code so I didn't particularly want to duplicate it, but then we are adding yet another part of the code that is dependent on MVC dll, which isn't as yet a published dependency...

Not really sure what the best course of action is tbh.