果然,在网上查了一些资料以后,终于动态加载了dll并且调用了里面的方法。其实搞懂了以后还是很简单的。具体实现的代码如下:
Assembly ass;
ass=Assembly.LoadFrom(Server.MapPath("")+"\\bin\\kernel.dll");
Type myType=ass.GetType("Kernel.DbControl");
MethodInfo mi=myType.GetMethod("ViewAllData");
Object[] arg=new object[1];
arg[0]=Server.MapPath("");
Object obj = Activator.CreateInstance(myType,arg);
Test.DataSource=(DataSet)mi.Invoke(obj,null);
Test.DataBind();
首先要把dll加载进来。然后得到特定的类名。再就是得到这个类里里面某个方法。最重要的一句就是:Object obj = Activator.CreateInstance(myType,arg); 这句的作用就是使这个类实例化。注意,实例化可以带上参数(这要看构造函数是什么样子的)。实例化了类以后就是调用方法,也和实例化类一样,要有参数的传递。当然,最好强制转换一下类型。
没有评论:
发表评论