Escribo con frecuencia código C# que tiene que usar cadenas mágicas para expresar nombres de propiedades. Todos conocen los problemas con las cuerdas mágicas. Son muy difíciles de refactorizar, no tienen tiempo de compilación y a menudo conducen a problemas difíciles de diagnosticar. Sin embargo, C# /. NET los usa en todo el lugar para representar los nombres de propiedad/clase/método.Reflejo de tiempo de compilación en C#
Este problema ha persistido durante años y años, y la única solución viable actualmente es utilizar un árbol de expresiones que luego se analiza en tiempo de ejecución para el nombre de la propiedad. Esto le proporciona una verificación satisfactoria en tiempo de compilación, pero complica el código (que requiere parámetros de tipo Expresión), y, incurre en un costo en tiempo de ejecución.
¿Alguien sabe si alguna vez ha habido una consideración de función para C# /. NET para agregar una reflexión en tiempo de compilación para superar este problema omnipresente?
Parece que sería una adición fácil de realizar, sería un cambio sin interrupciones, y sería muy beneficioso para muchos desarrolladores. El operador typeof() ya realiza una forma de reflexión en tiempo de compilación, por lo que parece que un nombre de operador de() (o algo similar) sería muy elogioso.
Además, ¿alguien sabe de algún problema potencial con tal característica?
Gracias por la ayuda.
posible duplicado de [Uso de una expresión lambda para evitar el uso de una "cadena mágica" para especificar una propiedad] (http://stackoverflow.com/questions/3330758/using-a-lambda-expression-to-avoid-using -a-magic-string-to-specify-a-property) –
Ver también: [Obtener la propiedad, como una cadena, de una Expresión>] (http://stackoverflow.com/questions/2789504/get-the-property-as-a-string-from-an-expressionfunctmodel-tproperty) –
@KirkWoll Esto no es un duplicado de esa pregunta. El segundo párrafo de la pregunta indica que MgSam está familiarizado con la técnica de árbol de expresión; la pregunta es si puede haber una nueva característica en las obras que permita una nueva solución al problema. – phoog