2005拿到手到现在也没用过 给你个2003的参考一下吧 ,随手写,错了莫怪 Assembly assembly = Assembly.LoadFile("youdll.dll"); Type[] types = assembly.GetTypes(); foreach( Type t in types ) { MemberInfo[] ms = t.GetMembers(); //这些就是他的属性和方法 }
调用你可以得到方法字段后 object o = assembly.CreatInstance(t.FullName ); MethodInfo mi = t.GetMethod("方法名"); mi.Invoke( o , 参数列表数组 )
非常感谢hdt(倦怠) 最后请教次 object o = assembly.CreatInstance(t.FullName ); 我如何把这个o转换成这个类的实例对象好吗? 立即结帐
o 其实已经就是这个类的实例了,因为你不是通过引用得来的从语言的角度来无法直接调用 类似于 object o =... youtype to = (youtype)o to.yourmethod();也就是说,因为是动态的,编译器无法去理解 youtype to = (youtype)o //只有通过引用 youtype to = (youtype)o //这句话编译器才能理解
object o = assembly.CreatInstance(t.FullName ); 这里的o已经是你想要的类的类型实例了,只不过用的是object的引用,进行一次转型就可以了~
.net写的或com的dll只须添加引用就能使用
是用c#写的
让代码自动读取这个dll并且获得他的方法和属性
如果不是调windows的API这样的,只要在项目的“引用”处右键,选择“浏览”,找到你要的那个DLL,添加即可,然后在项目里用到的地方加上:using DLL中的名称空间
你师傅没教你么?
:)
我的2005根本就打开不了你的连接啊
给你个2003的参考一下吧 ,随手写,错了莫怪
Assembly assembly = Assembly.LoadFile("youdll.dll");
Type[] types = assembly.GetTypes();
foreach( Type t in types )
{
MemberInfo[] ms = t.GetMembers(); //这些就是他的属性和方法
}
object o = assembly.CreatInstance(t.FullName );
MethodInfo mi = t.GetMethod("方法名");
mi.Invoke( o , 参数列表数组 )
最后请教次
object o = assembly.CreatInstance(t.FullName );
我如何把这个o转换成这个类的实例对象好吗?
立即结帐
类似于
object o =...
youtype to = (youtype)o
to.yourmethod();也就是说,因为是动态的,编译器无法去理解
youtype to = (youtype)o //只有通过引用
youtype to = (youtype)o //这句话编译器才能理解
这里的o已经是你想要的类的类型实例了,只不过用的是object的引用,进行一次转型就可以了~