太阳是黑色的

少年听雨歌楼上,红烛昏罗帐.壮年听雨客舟中,江阔云低断雁叫西风. 而今听雨僧庐下,鬓已星星也! 悲欢离合总无情,一任阶前点滴到天明.

解决了动态加载的问题

果然,在网上查了一些资料以后,终于动态加载了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); 这句的作用就是使这个类实例化。注意,实例化可以带上参数(这要看构造函数是什么样子的)。实例化了类以后就是调用方法,也和实例化类一样,要有参数的传递。当然,最好强制转换一下类型。

|2|left

一条评论 »

No comments yet.

RSS feed for comments on this post.

Leave a comment

要发表评论,您必须先登录