title: Is there a way to intercept setters and getters in C#?
body: <p>In both Ruby and PHP (and I guess other languages as well) there are some utility methods that are called whenever a property is set. ( <strong>*instance_variable_set*</strong> for Ruby, <strong>*__set*</strong> for PHP).</p>
  
  <p>So, let's say I have a C# class like this:</p>
  
  <pre><code>public class Person
  {
      public string FirstName { get; set; }
      public string LastName { get; set; }
  }
  </code></pre>
  
  <p>Now, let's say that if any property setter from the <code>Person</code> class is called, I want to call another method first, and then continue with the default behaviour of the setter, and the same applies for the property setters.</p>
  
  <p>Is this possible?</p>
  
  <hr>
  
  <p><em><strong>Edit:</em></strong>
  I want to do this without defining a backing field.</p>