title: How can I override get and set methods for all properties in a class?
body: <p>I have got several classes looking like the one below, and I need to do some checks in the get method and custom set methods. Adding the code in each get and set method makes everything look really messed up.</p>
  
  <p>Is there a way I can override the get and set methods for all properties in an entire class?</p>
  
  <pre><code>public class Test
  {
      private DataRow _dr;
      public Test()
      {
          _dr = GetData();
      }
  
      public string Name
      {
          get { return _dr[MethodBase.GetCurrentMethod().Name.Substring(4)].ToString(); }
          set
          {
              VerifyAccess(MethodBase.GetCurrentMethod().Name.Substring(4), this.GetType().Name);
              _dr[MethodBase.GetCurrentMethod().Name.Substring(4)] = value;
          }
      }
  
      public string Description
      {
          get { return _dr[MethodBase.GetCurrentMethod().Name.Substring(4)].ToString(); }
          set
          {
              VerifyAccess(MethodBase.GetCurrentMethod().Name.Substring(4), this.GetType().Name);
              _dr[MethodBase.GetCurrentMethod().Name.Substring(4)] = value;
          }
      }
  
      public string DescriptionUrl
      {
          get { return _dr[MethodBase.GetCurrentMethod().Name.Substring(4)].ToString(); }
          set
          {
              VerifyAccess(MethodBase.GetCurrentMethod().Name.Substring(4), this.GetType().Name);
              _dr[MethodBase.GetCurrentMethod().Name.Substring(4)]= value;
          }
      }
  
  
      private void VerifyAccess(string propertyname, string classname)
      {
          //some code to verify that the current user has access to update the property
          //Throw exception
      }
  
      private DataRow GetData()
      {
          //Some code to pull the data from the database
      }
  }
  </code></pre>