예제 #1
0
        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");
            }
        }