Ok. Quindi ho un codice che associa certi controlli su un winForm a certe proprietà in un oggetto, per fare certe cose ai controlli quando accadono certe cose ai dati. Tutto bene, funziona bene. Non il problema Il problema è, per aggiungere elementi alla mappatura, che io chiamo una funzione che assomiglia a:Estrazione dei nomi di proprietà per il reflection, con Intellisense e Compile-Time Checking
this.AddMapping(this.myControl,myObject,"myObjectPropertyName");
Il problema che ho incontrato è che è molto difficile dire, al momento della compilazione, la differenza tra la linea di cui sopra e qui di seguito:
this.AddMapping(this.myControl,myObject,"myObjectPropretyName");
Dal momento che l'ultimo parametro è una stringa, non c'è tempo di compilazione il controllo o qualcosa di simile che potrebbe valere che la stringa stessa in realtà corrisponde a un nome di proprietà valida per l'oggetto dato. Inoltre, cose come Refactor e "Trova tutti i riferimenti" perdono questo tipo di riferimento, con conseguente ilarità quando cambia il nome della proprietà stessa. Quindi quello che mi chiedo è se c'è un modo per cambiare la funzione in modo tale che quello che sto passando è ancora una stringa che rappresenta il nome della proprietà in qualche modo, ma con il controllo del tempo di compilazione del valore attuale. Qualcuno ha detto che potrebbe farlo con Expression Trees, ma ho letto su di loro e non sembrano vedere la connessione. Mi piacerebbe fare qualcosa di simile:
this.AddMapping(this.myControl,myObject,myObject.myObjectPropertyName);
o anche
this.AddMapping(this.myControl,myObject.myObjectPropertyName);
sarebbe dolce!
Qualche idea?
Sono occorsi 6 o 7 passaggi prima di poter individuare la differenza tra le due righe di codice. – jjnguy
Benvenuti nel mio inferno ... ora immagino che sia pieno di acronimi come CPCR, CPR, CLI, ecc ... – GWLlosa
Per il più lungo tempo ho desiderato un qualche tipo di add-in di VS che avrebbe analizzato tutte le stringhe nel vostro codice e controllo ortografico. Prenderà anche in considerazione il rivestimento del cammello e il controllo ortografico di ogni parola singolarmente. Qualcuno deve scrivere quel pollone .... – BFree