After a second thought, it would be flexible enough since the `PropertyInfo` has the reference to the `DeclaringType`, so even my use case can be implemented with the predicate function.

I'll rewrite it now.