Is there any alternative of using Aspect Oriented Programming to inject repetitive code.
Suppose we have a class that contains many properties and if a property get its value changed we would like to log that.

```
class Person 
{
 public string Name
 {
    get{return name;}
    set
    { 
      name = value;
      LogPropertyChanged("Name");
    }
  }

  public int Age
  {
    get{return age;}
    set
    { 
      age = value;
      LogPropertyChanged("Age");
    }
   }      
}

```

How would you get rid of repetitive code like security checking, logging and stuff like that without using Aspect Oriented Programming.