/// <summary>
/// 利用反射调用程序集方法
/// </summary>
/// <param name="assemblyName">程序集名</param>
/// <param name="className">类名</param>
/// <param name="methodName">方法名</param>
/// <param name="objParams">方法参数</param>
/// <returns>返回值</returns>
public object InvokeMethod(string assemblyName, string className, string methodName, params object[] objParams)
{
object result = null;
try
{
Assembly assembly = Assembly.Load(assemblyName);
object instance = assembly.CreateInstance(assemblyName + "." + className);
Type instType = instance.GetType();
//查找匹配的方法
foreach (MethodInfo m in instType.GetMethods(BindingFlags.Instance | BindingFlags.Public))
{
if (m.Name == methodName && m.GetParameters().Length == objParams.Length)
{
result = m.Invoke(instance, objParams);
break;
}
}
}
catch(Exception ex)
{
//...
}
return result;
}