title: How to implement simple Property Ammendment with Afterthought
body: <p>I'm trying to figure out Afterthought. I want to set the variable HasChanged when any property setter is called. I have the following code</p>
  
  <pre><code>public class TestUser
  {
      public int Id { get; set; }
      public string FirstName { get; set; }
      public string LastName { get; set; }
      public bool HasChanged { get; set; }
  }
  
  public class TestUserAmmendment&lt;T&gt; : Amendment&lt;T, T&gt; where T : TestUser
  {
      public TestUserAmmendment()
      {
          Properties
              .Where(p =&gt; p.PropertyInfo.CanRead
                  &amp;&amp; p.PropertyInfo.CanWrite
                  &amp;&amp; p.PropertyInfo.GetSetMethod().IsPublic
                  &amp;&amp; p.Name != "HasChanged")
              .AfterSet(instance.HasChanged = true);
      }
  }
  </code></pre>
  
  <p>but I am receiving a compiler error saying <code>The name 'Properties' does not exist in the current context</code>. I have copied the code from the unit tests, which I can compile and run. I'm not sure, but does anyone know how I can implement this simple aspect using Afterthought?</p>