How about Get-Member -InputObject $f
instead of piping? There is a difference, as the help says, but it should consider only collections:
-InputObject
Specifies the object whose members are retrieved.
Using the InputObject parameter is not the same as piping an object to Get-Member.