Saturday, 18 June 2016

Dynamically invoking a method with Reflection in .NET C# Without Constructor

 var DLL = Assembly.LoadFile(@"C:\" + Component);
                string className = DLL.GetName().Name + "." + Class;
                var classInfo = DLL.GetType(className);
                var methodInfo = classInfo.GetMethod(Function);
                if (methodInfo != null)
                {
                    object result = null;
                    ParameterInfo[] parameters = methodInfo.GetParameters();
                    object classInstance = Activator.CreateInstance(classInfo, null);
                    if (parameters.Length == 0)
                    {
                        result = methodInfo.Invoke(classInstance, null);
                    }
                    else
                    {
                        string[] split_Parameters = Parameters.Split(',');

                        object[] parametersArray = new object[split_Parameters.Count()];
                        for (int i = 0; i <= split_Parameters.Count() - 1; i++)
                        {
                            string type = (parameters[i]).ParameterType.Name.ToUpper();
                            switch (type)
                            {
                                case "INT32":
                                    parametersArray[i] = Convert.ToInt32(split_Parameters[i]);
                                    break;
                                case "INT":
                                    parametersArray[i] = Convert.ToInt32(split_Parameters[i]);
                                    break;
                                case "STRING":
                                    parametersArray[i] = split_Parameters[i];
                                    break;
                                case "BOOL":
                                    parametersArray[i] = Convert.ToBoolean(split_Parameters[i]);
                                    break;
                                default:
                                    parametersArray[i] = split_Parameters[i];
                                    break;
                            }
                        }
                        result = methodInfo.Invoke(classInstance, parametersArray);
                        actionResult.Status = "Success";
                    }
                }

1 comment:

Type Script variables

Difference between var,let and const in java script and typescript -----------------------------------------------------------------------...