123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- using EdjCase.JsonRpc.Core.Utilities;
- using EdjCase.JsonRpc.Router.Utilities;
- using Newtonsoft.Json.Linq;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Reflection;
- using System.Text;
- using System.Threading.Tasks;
- namespace EdjCase.JsonRpc.Router
- {
- public class RpcMethodInfo
- {
- public MethodInfo Method { get; }
- public object[] ConvertedParameters { get; }
- public object[] RawParameters { get; }
- public RpcMethodInfo(MethodInfo method, object[] convertedParameters, object[] rawParameters)
- {
- this.Method = method;
- this.ConvertedParameters = convertedParameters;
- this.RawParameters = rawParameters;
- }
- public bool HasExactParameterMatch()
- {
- try
- {
- ParameterInfo[] parameters = this.Method.GetParameters();
- for (int i = 0; i < this.RawParameters.Length; i++)
- {
- object original = this.RawParameters[i];
- ParameterInfo parameter = parameters[i];
- if (!RpcUtil.TypesMatch(original, parameter.ParameterType))
- {
- return false;
- }
- }
- return true;
- }
- catch
- {
- return false;
- }
- }
- }
- }
|