Пример #1
0
		private void InvokeJsMethod(ref ParameterInfo currentParameterInfo, Method m, MethodInfo mi)
		{
			if (mi != null && mi.IsPublic)
			{
				object[] args = m.ToArray();
				ParameterInfo[] pis = mi.GetParameters();
				if (pis.Length == 1 && args.Length > 1)
				{
					args = new object[] {args};
				}
				for (int ii = 0; ii < pis.Length; ii++)
				{
					ParameterInfo pi = pis[ii];
					currentParameterInfo = pi;
					Type ptype = pi.ParameterType;
					Param p = args[ii] as Param;
					args[ii] = Convert.ChangeType(p == null ? args[ii] : p.Value, ptype);
				}
				if (mi.ReturnType != typeof (void))
				{
					m.MethodReturnValue = mi.Invoke(this, args);
				}
				else
				{
					mi.Invoke(this, args);
				}
			}
		}