Могу ли я использовать Expression <Func <T, bool >> и надежно увидеть, на какие свойства ссылаются в Func <T, bool>?

Я пишу что-то во вкусеEnumerable.Where в том, что принимает предикат в формеFunc<T, bool>, Если основнойT инвентарьINotifyPropertyChangedЯ хотел бы быть немного более умным в переоценке предиката.

Я думаю об изменении его для использованияExpression<Func<T, bool>>и затем с помощью дерева выражений выяснить, какие свойства используются в предикате. Тогда я могу иметьPropertyChanged Хендлер будет немного умнее.

Мой вопрос: это возможно? Если предикат прост (например,x => x.Age > 18), тоExpression Кажется, есть все, что мне нужно. Существуют ли сценарии, в которых я не смогу увидеть, на какие свойства ссылаются?

Ответы на вопрос(2)

Ваш ответ на вопрос