Qual é a melhor maneira de chamar o evento PropertyChanged de INotifyPropertyChanged?

Ao implementar a interface INotifyPropertyChanged, você é responsável por chamar o evento PropertyChanged a cada vez que uma propriedade é atualizada na classe.

Isso normalmente leva ao seguinte código:

    public class MyClass: INotifyPropertyChanged

        private bool myfield;
        public bool MyField
        {
            get { return myfield; }
            set
            {
                if (myfield == value)
                    return;
                myfield = value;
                OnPropertyChanged(new PropertyChangedEventArgs("MyField"));
            }
        }

        public event PropertyChangedEventHandler PropertyChanged;

        private void OnPropertyChanged(PropertyChangedEventArgs e)
        {
            PropertyChangedEventHandler h = PropertyChanged;
            if (h != null)
                h(this, e);
        }
   }

Isso é12 linhas por propriedade.

Seria muito mais simples se fosse possível decorar propriedades automáticas como esta:

[INotifyProperty]
public double MyField{ get; set; }

Infelizmente, isso não é possível (consulteesta postagem no msdn por exemplo)

Como posso reduzir a quantidade de código necessária por propriedade?