Question

Par exemple je

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

Puis-je obtenir la classe Foo AST et réécrire Bar, dans le temps de la compilation, à

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

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

.

Était-ce utile?

La solution

Compile le temps re-écriture est pas pris en charge directement par Roslyn aujourd'hui, mais les transformations syntaxiques et sémantiques sont sans aucun doute. En fait, jetez un oeil à l'échantillon « ImplementNotifyPropertyChanged » inclus dans le CTP pour voir quelque chose de ce que vous voulez faire. L'échantillon est mis en œuvre une transformation de temps de conception et fonctionnalité IDE, mais vous pouvez extraire la logique et d'en faire quelque chose comme une tâche de pré-construction qui réécrit les fichiers avant la compilation.

Autres conseils

Je ne pense pas que ce soit possible dans le CTP actuel qui a été libéré comme le compilateur est là en tant que service, mais il n'y a pas une telle chose qui vous permet de brancher dans le processus de compilation que vous pouvez faire dans Nemerle.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top