private bool CompareParam(Type parameter, RpcTypeInfo rpcParameter)
        {
            var  rpcParameterType = rpcParameter.Type;
            bool isSuit           = false;

            if (rpcParameter.IsGenericType)
            {
                isSuit = parameter.GetTypeInfo().IsGenericType
                    ? parameter.IsGenericTypeOf(rpcParameterType.GetTypeInfo(), rpcParameterType)
                    : IsSuit(rpcParameterType, parameter);
            }
            else
            {
                isSuit = rpcParameter.IsEqual(parameter);
            }
            if (!isSuit)
            {
                return(false);
            }

            return(true);
        }
示例#2
0
        public bool CompareParams(Type[] parameters)
        {
            if (HasDefaultValue)
            {
                return(CompareDefault(parameters));
            }

            var lastParameterIndex = ParametersCount - 1;

            if (parameters.Length < lastParameterIndex)
            {
                return(false);
            }

            for (int i = 0; i < lastParameterIndex; i++)
            {
                if (!Parameters[i].IsEqual(parameters[i]))
                {
                    return(false);
                }
            }

            if (parameters.Length == ParametersCount && parameters[lastParameterIndex] == Parameters[ParametersCount - 1].Type)
            {
                return(true);
            }

            for (int i = lastParameterIndex; i < parameters.Length; i++)
            {
                if (!ElementType.IsEqual(parameters[i]))
                {
                    return(false);
                }
            }

            return(true);
        }