C# Deferred Property Setting
<p>I am working on a project where I need to queue up a number of property changes. Let say I have:</p>

<pre><code>public class foo
{
   string bar { get; set; }
   int bar1 { get; set }
}
</code></pre>

<p>I want to have some code that looks like:</p>

<pre><code>//Store value set actions in a queue
foo.SetValue(bar, "abc");
foo.SetValue(bar1, 123);

//Preview changes
foreach(Item change in foo.ChangeQueue)
{
   Console.Write(change.PropertyName.ToString());
   Console.Write(change.Value.ToString());
}

//Apply actions
foo.CommitChanges();
</code></pre>

<p>What is the best way to accomplish this?</p>
