public void Do()
{
var pinfo = this.Task.GetType ().GetProperty (Property);
var getMethod = pinfo.GetGetMethod ();
var setMethod = pinfo.GetSetMethod ();
OldValue = getMethod.Invoke (this.Task, new object[] {});
setMethod.Invoke (this.Task, new object [] { Value });
Storage.Update (this.Task);
if (this.Done != null)
this.Done (this, null);
}