using System.Reflection;
/// <summary>
/// 根据方法名执行方法
/// </summary>
/// <param name="assemblyName">程序集</param>
/// <param name="nameSpace">命名空间</param>
/// <param name="className">类名</param>
/// <param name="funcName">方法名</param>
/// <param name="param">输入参数</param>
public void GetMethodResult(string assemblyName, string nameSpace, string className, string funcName, params string[] param)
{
try
{
Assembly asmb = null;
Type type = null;
if (assemblyName.Trim() == "") //如果使用外部引用
{
asmb = Assembly.LoadFrom(assemblyName); //调用的DLL程序集
type = asmb.GetType(string.Concat(nameSpace, ".", className)); //类类型
}
else
{
type = Type.GetType(string.Concat(nameSpace, ".", className)); //类类型
}
object dObj = Activator.CreateInstance(type); //在本地或从远程创建对象类型(类或结构都可以)
MethodInfo method = type.GetMethod(funcName); //获取方法
BindingFlags flag = BindingFlags.Public | BindingFlags.Instance; //调用方法的一些标志位,这里的含义是Public并且是实例方法,这也是默认的值
object[] parameters = new object[] { param }; //方法的输入参数
object returnValue = method.Invoke(dObj, flag, Type.DefaultBinder, parameters, null); //取得方法返回的值
}
catch (Exception ex)
{
string ExStr = ex.Message;
}
}
System.Reflection 使用实例
最新推荐文章于 2024-05-22 14:42:40 发布