Esempio n. 1
0
        protected bool CheckParamsCompatibility(ParameterInfo[] paramsInfo, Type[] types, object[] values)
        {
            for (int i = 0; i < paramsInfo.Length; i++)
            {
                Type paramType = paramsInfo[i].ParameterType;
                if (paramType.IsInstanceOfType(values[i]))
                {
                    continue;
                }
                // null and reference types
                if (values[i] == null && !paramType.IsValueType)
                {
                    continue;
                }
                // possible autocast between generic/non-generic common types
                if (ConvertManager.CanChangeType(types[i], paramType))
                {
                    continue;
                }

                // incompatible parameter
                return(false);
            }
            return(true);
        }