Example #1
0
        private static object CallBase(ExternalMethodCallerConfig config)
        {
            var @class = config.ExternalType ?? ReflectionHelper.GetExternalType(config.AssemblyName, config.ClassName);

            var flags = BindingFlags.Default | BindingFlags.Public | BindingFlags.NonPublic;

            if (config.IsInstanceCall)
            {
                flags |= BindingFlags.Instance;
            }
            else
            {
                flags |= BindingFlags.Static;
            }

            if (config.CallConstructor)
            {
                var ctor   = @class.GetConstructor(flags, null, config.Types, null);
                var result = ctor.Invoke(config.Instance, config.Arguments);
                return(config.Instance);
            }
            else
            {
                var method = @class.GetMethod(config.MethodName, flags, null, config.Types, null);
                var result = method.Invoke(config.Instance, config.Arguments);
                return(result);
            }
        }
Example #2
0
 public static object Call(ExternalMethodCallerConfig config)
 {
     return(CallBase(config));
 }