/// <summary> /// 通过客户端传过来的方法调用信息获取方法的动态调用器 /// </summary> /// <param name="invokeInfo">The invoke info.</param> /// <returns></returns> public MethodInfo GetMethod(MethodInvokeInfo invokeInfo) { if (!methodInvokers.ContainsKey(invokeInfo)) { MethodInfo method = invokeInfo.GetGenericMethod(); if (method == null) { throw new ArgumentException(String.Format("无此泛型方法 \"{0}\" 定义", invokeInfo.Name)); } methodInvokers.Add(invokeInfo, method); } return(methodInvokers[invokeInfo]); }
/// <summary> /// ͨ���ͻ��˴������ķ���������Ϣ��ȡ�����Ķ�̬������ /// </summary> /// <param name="invokeInfo">The invoke info.</param> /// <returns></returns> public MethodInfo GetMethod(MethodInvokeInfo invokeInfo) { if (!methodInvokers.ContainsKey(invokeInfo)) { MethodInfo method = invokeInfo.GetGenericMethod(); if (method == null) throw new ArgumentException(String.Format("�˷��ͷ��� \"{0}\" ����", invokeInfo.Name)); methodInvokers.Add(invokeInfo, method); } return methodInvokers[invokeInfo]; }
/// <summary> /// ����Զ�̹��̵��ð� /// </summary> /// <param name="package">The package.</param> /// <param name="encryptKey">The encrypt key.</param> /// <param name="invokeInfo">The invoke info.</param> public static void DecodeInvoke(NetworkInvokePackage package, string encryptKey, out MethodInvokeInfo invokeInfo, out object[] parameters) { invokeInfo = serializer.Deserialize<MethodInvokeInfo>(SecurityUtility.DESDecrypt((byte[])package.Context[METHOD_INVOKEINFO], encryptKey)); parameters = serializer.Deserialize<object[]>(SecurityUtility.DESDecrypt((byte[])package.Context[METHOD_PARAMETERS], encryptKey)); }