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); }
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); }