c#

位置:IT落伍者 >> c# >> 浏览文章

用反射调用任意.net库中的方法


发布日期:2018年08月07日
 
用反射调用任意.net库中的方法

注:

ReturnMessage 是我自写的一个类作用请查看我的其他文章我也把这个类一并附在后面

通过NameSpaceAndClassName和MethodName实际上就可以精确定位一个方法了如调用abcdll里的namespaceClassMain调用起来就是CallAssembly(abcdllnamespaceClassMainnull)

public static ReturnMessage CallAssembly(string Pathstring NameSpaceAndClassNamestring MethodNameobject[] Parameters)

{

try

{

Assembly Ass=AssemblyLoadFrom(Path);//调入文件(不限于dllexe亦可只要)

Type TP=AssGetType(NameSpaceAndClassName);//NameSpaceAndClassName是名字空间类名namespaceClass

MethodInfo MI=TPGetMethod(MethodName);//MethodName是要调用的方法名Main

object MeObj=SystemActivatorCreateInstance(TP);

MIInvoke(MeObjParameters);//Parameters是调用目标方法时传入的参数列表

return new ReturnMessage(true成功调用);

}

catch(Exception e)

{

return new ReturnMessage(false出现异常消息为:+eMessagee);

}

}

附ReturnMessage

public class ReturnMessage

{

public ReturnMessage()

{

thism_Succeed=false;

thism_Message=;

thism_Code=;

thism_Data=null;

}

public ReturnMessage(bool IsSucceed)

{

thism_Succeed=IsSucceed;

}

public ReturnMessage(bool IsSucceedstring Message)

{

thism_Succeed=IsSucceed;

thism_Message=Message;

}

public ReturnMessage(bool IsSucceedstring Messageint Code)

{

thism_Succeed=IsSucceed;

thism_Message=Message;

thism_Code=Code;

}

public ReturnMessage(bool IsSucceedstring Messageint Codeobject Data)

{

thism_Succeed=IsSucceed;

thism_Message=Message;

thism_Code=Code;

thism_Data=Data;

}

public ReturnMessage(bool IsSucceedstring Messageint Codeobject Dataobject[] Datas)

{

thism_Succeed=IsSucceed;

thism_Message=Message;

thism_Code=Code;

thism_Data=Data;

thism_Datas=Datas;

}

//

bool m_Succeed;

string m_Message;

int m_Code;

object m_Data;

object[] m_Datas;

public bool Succeed

{

get{return m_Succeed;}

set{m_Succeed=value;}

}

public string Message

{

get{return m_Message;}

set{m_Message=value;}

}

public int Code

{

get{return m_Code;}

set{m_Code=value;}

}

public object Data

{

get{return m_Data;}

set{m_Data=value;}

}

public object[] Datas

{

get{return m_Datas;}

set{m_Datas=value;}

}

}

               

上一篇:使用.NET从VB6中访问事件日志

下一篇:Visual C#编程入门之语句