I would like to dynamically get and set an objects properties as follows:
public class Person
{
    public string Name {get; set; }
}
public class Testing
{
    public void Run()
    {
        var p = new Person();
        SetValue(p, "Name", "Henry");
        var name = GetValue(p, "Name");
    }
}
Please could I get help creating the GetValue and SetValue methods using dynamic method (or expression trees)?
I am intending to save compiled expressions in a dictionary, to speed up future get/set calls.
 
                        
Do you really want to use expression trees? for this simple scenario I would try to compile directly into a DynamicMethod using Reflection.Emit API's by getting an IL Generator. But .. for expression trees, i wrote a helper for you:
And this is how you can use it:
It is very obvious that you can extract my compilation logic to use strings instead of letting DLR giving the property name for you :)