Posso usar a Expressão <Func <T, bool >> e ver com segurança quais propriedades são referenciadas no Func <T, bool>?

Estou escrevendo algo com sabor deEnumerable.Where em que assume um predicado da formaFunc<T, bool>. Se o subjacenteT implementaINotifyPropertyChanged, Gostaria de ser um pouco mais inteligente ao reavaliar o predicado.

Estou pensando em mudar para usarExpression<Func<T, bool>>e, em seguida, usando a árvore de expressão para descobrir quais propriedades são usadas no predicado. Então eu posso ter o meuPropertyChanged manipulador ser um pouco mais inteligente.

Minha pergunta: isso é viável? Se o predicado for simples (por exemplo,x => x.Age > 18), então oExpression parece ter tudo o que preciso nele. Existem cenários em que não poderei ver quais propriedades são referenciadas?

questionAnswers(2)

yourAnswerToTheQuestion