private static void ValidateSlots(IMethodInfo method, IEnumerable <KeyValuePair <ISlotInfo, object> > slotValues) { foreach (KeyValuePair <ISlotInfo, object> slotValue in slotValues) { ISlotInfo slot = slotValue.Key; switch (slot.Kind) { case CodeElementKind.GenericParameter: IGenericParameterInfo genericParameter = (IGenericParameterInfo)slot; if (method.Equals(genericParameter.DeclaringMethod)) { continue; } break; case CodeElementKind.Parameter: IParameterInfo parameter = (IParameterInfo)slot; if (method.Equals(parameter.Member)) { continue; } break; } throw new ArgumentException(String.Format("Slot '{0}' is not valid for invoking method '{1}'.", slot, method), "slotValues"); } }
private static void ValidateSlots(IMethodInfo method, IEnumerable<KeyValuePair<ISlotInfo, object>> slotValues) { foreach (KeyValuePair<ISlotInfo, object> slotValue in slotValues) { ISlotInfo slot = slotValue.Key; switch (slot.Kind) { case CodeElementKind.GenericParameter: IGenericParameterInfo genericParameter = (IGenericParameterInfo)slot; if (method.Equals(genericParameter.DeclaringMethod)) continue; break; case CodeElementKind.Parameter: IParameterInfo parameter = (IParameterInfo)slot; if (method.Equals(parameter.Member)) continue; break; } throw new ArgumentException(String.Format("Slot '{0}' is not valid for invoking method '{1}'.", slot, method), "slotValues"); } }