Attualmente sto lavorando alla creazione di un mio nuovo progetto e mi chiedevo come avrei potuto ottenere che le mie classi ViewModel avessero il supporto di INotifyPropertyChanged pur non avendo a portata di mano tutte le proprietà.Automatic InotifyPropertyChanged Implementazione tramite generazione di codice T4?
Ho esaminato i framework AOP, ma penso che avrebbero solo fatto saltare il mio progetto con un'altra dipendenza.
Quindi ho pensato di generare le implementazioni di proprietà con T4.
L'installazione sarebbe questa: ho una classe ViewModel che dichiara solo le sue variabili di background Proprietà e quindi utilizzo T4 per generare le implementazioni di proprietà da esso.
Per esempio, questo sarebbe il mio ViewModel:
public partial class ViewModel
{
private string p_SomeProperty;
}
Poi T4 sarebbe andare oltre il file di origine e cercare per le dichiarazioni membro denominato "p_" e generare un file in questo modo:
public partial class ViewModel
{
public string SomeProperty
{
get
{
return p_SomeProperty;
}
set
{
p_SomeProperty= value;
NotifyPropertyChanged("SomeProperty");
}
}
}
Questo approccio ha alcuni vantaggi ma non sono sicuro che possa funzionare davvero. Quindi ho voluto postare la mia idea qui su StackOverflow come una domanda per avere un feedback su di esso e forse qualche consiglio su come può essere fatto meglio/più facile/più sicuro.
Mi sento un deficiente, ma non avevo idea di cosa fosse T4 fino a quando ho cercato su Google solo per questa domanda. Non posso credere che questo non sia più parlato! – BFree
Anch'io. Sono arrivato dal vecchio thread del preprocessore C# (http://stackoverflow.com/questions/986404/does-a-c-preprocessing-tool -exist). Doh. – lo5
vedere anche http://stackoverflow.com/questions/1315621/implementing-inotifypropertychanged-does-a-better-way-exist –