using System; using System.Reflection; namespace FastReport.Code { internal class ExpressionDescriptor { private string methodName; private MethodInfo methodInfo; private readonly AssemblyDescriptor assembly; public string MethodName { get { return methodName; } set { methodName = value; } } #pragma warning disable 618 public object Invoke(object[] parameters) { if (assembly == null || assembly.Instance == null) return null; if (methodInfo == null) { methodInfo = assembly.Instance.GetType().GetMethod(MethodName, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); } if (methodInfo == null) return null; return methodInfo.Invoke(assembly.Instance, parameters); } #pragma warning restore 618 public ExpressionDescriptor(AssemblyDescriptor assembly) { this.assembly = assembly; } } }