CSharpUtils.Templates.Runtime.DynamicUtils.Call C# (CSharp) Метод

Call() публичный статический Метод

public static Call ( Type Type, string Method ) : dynamic
Type System.Type
Method string
Результат dynamic
		public static dynamic Call(Type Type, string Method, params dynamic[] Params)
		{
			/*
			var ConvertedParams = new List<Object>();
			int ExtractedParamsIndex = 0;

			foreach (var Parameter in Delegate.Method.GetParameters())
			{
				if (Parameter.ParameterType.Name.Substr(-2) == "[]")
				{
					var ExtractedParams = Params.Slice(ExtractedParamsIndex);
					ConvertedParams.Add(ExtractedParams);
					Console.WriteLine(ExtractedParams.Length);
					Console.WriteLine(ExtractedParams[0]);
				}
				else
				{
					ConvertedParams.Add(Params[ExtractedParamsIndex++]);
				}
			}
			foreach (var Param in ConvertedParams)
			{
				Console.WriteLine(Param);
			}
			return Delegate.DynamicInvoke(ConvertedParams);
			 * */

			return Type.InvokeMember(Method, System.Reflection.BindingFlags.InvokeMethod, null, null, Params);

			//return null;
		}
	}

Usage Example

Пример #1
0
        public dynamic CallFilter(string FilterName, params dynamic[] Params)
        {
            Tuple <Type, string> Info;

            if (Filters.TryGetValue(FilterName, out Info))
            {
                return(DynamicUtils.Call(Info.Item1, Info.Item2, Params));
            }
            else
            {
                return(null);
            }
        }