¿Puedo usar Roslyn para la reescritura de código de tiempo de compilación?

Por ejemplo tengo

class Foo: INotifyPropertyChanged {
    public event PropertyChangedEventHandler PropertyChanged;
    public int Bar {get;set;}
}

¿Puedo obtener la clase AST de Foo y reescribir Bar, en tiempo de compilación, a

    public string Bar
    {
        get { return this.bar; }

        set 
        {
            if (value != this.bar)
            {
                this.phoneNumberValue = value;
                PropertyChanged(this, new PropertyChangedEventArgs("Bar"));
            }
        }
    }

.

Respuestas a la pregunta(2)

Su respuesta a la pregunta