Могу ли я использовать Expression <Func <T, bool >> и надежно увидеть, на какие свойства ссылаются в Func <T, bool>?
Я пишу что-то во вкусеEnumerable.Where
в том, что принимает предикат в формеFunc<T, bool>
, Если основнойT
инвентарьINotifyPropertyChanged
Я хотел бы быть немного более умным в переоценке предиката.
Я думаю об изменении его для использованияExpression<Func<T, bool>>
и затем с помощью дерева выражений выяснить, какие свойства используются в предикате. Тогда я могу иметьPropertyChanged
Хендлер будет немного умнее.
Мой вопрос: это возможно? Если предикат прост (например,x => x.Age > 18
), тоExpression
Кажется, есть все, что мне нужно. Существуют ли сценарии, в которых я не смогу увидеть, на какие свойства ссылаются?