¿Puedo usar Expression <Func <T, bool >> y ver de manera confiable a qué propiedades se hace referencia en Func <T, bool>?
Estoy escribiendo algo con el sabor deEnumerable.Where
en eso toma un predicado de la formaFunc<T, bool>
. Si el subyacenteT
implementosINotifyPropertyChanged
, Me gustaría ser un poco más inteligente al reevaluar el predicado.
Estoy pensando en cambiarlo para usarExpression<Func<T, bool>>
, y luego usando el árbol de expresión para averiguar qué propiedades se usan en el predicado. Entonces puedo tener miPropertyChanged
manejador ser un poco más inteligente.
Mi pregunta: ¿es factible? Si el predicado es simple (p. Ej.x => x.Age > 18
), entonces laExpression
Parece tener todo lo que necesito. ¿Hay escenarios en los que no pueda ver a qué propiedades se hace referencia?