The hash code calculation in PSMethodInvocationConstraints only counts in the array members but not their elements, so the returned hash code would be different for two PSMethodInvocationConstraints instances that hold exactly the same elements in their array members.
The hash code of PSMethodInvocationConstraints is used by the static cache PSInvokeMemberBinder.s_binderCache because PSMethodInvocationConstraints is a member of the key for that cache, so you end up with every request being a cache miss in PSInvokeMemberBinder.s_binderCache.
|
=> HashCode.Combine(MethodTargetType, ParameterTypes, GenericTypeParameters); |