Ok. Así que tengo un código que asigna ciertos controles en un WinForm a ciertas propiedades en un objeto, para hacer ciertas cosas a los controles cuando ciertas cosas suceden a los datos. Todo bien y bien, funciona bien. No es el problema. La cuestión es, para añadir elementos a la cartografía, que llama a una función que se parece a:Extracción de nombres de propiedades para reflexión, con Intellisense y compilación en tiempo de compilación
this.AddMapping(this.myControl,myObject,"myObjectPropertyName");
El problema me encuentro es que es muy difícil decir, en tiempo de compilación, la diferencia entre la línea anterior y el siguiente:
this.AddMapping(this.myControl,myObject,"myObjectPropretyName");
Desde el último parámetro es una cadena, no hay tiempo de compilación o algo por el estilo que se enfrente a los que la propia cadena en realidad corresponde a un nombre de propiedad válido en el objeto dado. Además, cosas como Refactor y "Buscar todas las referencias" se pierden en este tipo de referencia, lo que resulta en hilaridad cuando cambia el nombre de la propiedad. Entonces, lo que me pregunto es si hay alguna forma de cambiar la función, de modo que lo que estoy pasando siga siendo una cadena que represente el nombre de la propiedad de alguna manera, pero con la verificación en tiempo de compilación del valor real que entra. Alguien dijo que podría hacer esto con Expression Trees, pero los he leído y no veo la conexión. Me encantaría hacer algo como:
this.AddMapping(this.myControl,myObject,myObject.myObjectPropertyName);
o incluso
this.AddMapping(this.myControl,myObject.myObjectPropertyName);
sería dulce!
¿Alguna idea?
Tardó 6 o 7 pasadas antes de que pudiera detectar la diferencia en sus dos líneas de código. – jjnguy
Bienvenido a mi infierno ... ahora imagínenlo plagado de acrónimos como CPCR, CPR, CLI, etc ... – GWLlosa
Durante mucho tiempo he deseado algún tipo de complemento VS que analice todas las cadenas de su el código y el hechizo los revisan. También tomaría en cuenta la envoltura de camello, y corregirá la ortografía de cada palabra individualmente. Alguien tiene que escribir ese tonto ... – BFree