In some settings you might need to access more of the language than available through reflection and System.Linq.Expressions. You might want to look into project Roslyn or NRefactory. These will let you access the c# parser. This can be useful in many settings. For instance, to refactor c#. To render the code to another language.
Comments or errors? Fork this post and do a pull request on github