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?