解决了动态加载的问题
果然,在网上查了一些资料以后,终于动态加载了dll并且调用了里面的方法。其实搞懂了以后还是很简单的。具体实现的代码如下:
1 2 3 4 5 6 7 8 9 | 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); 这句的作用就是使这个类实例化。注意,实例化可以带上参数(这要看构造函数是什么样子的)。实例化了类以后就是调用方法,也和实例化类一样,要有参数的传递。当然,最好强制转换一下类型。