求教如何实例华dll中的类呢?也就是如何使用动态加入的dll中的类
求教。。。。。我是菜鸟啊 问题点数:50、回复次数:7Top
1 楼saucer(思归)回复于 2006-03-05 09:29:29 得分 29
use System.Reflection.Assembly class, load it, then call its CreateInstance or Activator.CreateInstance, see the example in the documentation:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemreflectionassemblyclasstopic.asp
Top
2 楼WeekZero(∮小气的鬼∮)回复于 2006-03-05 09:29:37 得分 0
动态加入的dll中的类??
比如你这个dll的命名空间为webmanage,类名称也是webmanage
将你的dll在vs中添加引用,在程序的.cs文件中:using webmanage;
使用时:webmanage wm = new webmanage();
wm.方法();
Top
3 楼lionwys(lionwys)回复于 2006-03-05 09:42:49 得分 0
谢谢一楼的,不过我还是不大明白,好比dll命名空间为test,类也为test,类中有一个函数叫t(),请问我该如何去动态饮用,然后调用函数t.
Top
4 楼saucer(思归)回复于 2006-03-05 09:51:59 得分 10
didn't try, but something like this
using System;
using System.Reflection;
Assembly a = Assembly.LoadFrom("yourassemblyname");
Type t = a.GetType("test.test",true,true);
MethodInfo mi = t.GetMethod("t",BindingFlags.NonPublic | BindingFlags.Public |
BindingFlags.Static | BindingFlags.Instance | BindingFlags.DeclaredOnly);
Object obj = Activator.CreateInstance(t);
m.Invoke(obj, null);
by the way, it is a bad style to name a class as 'test' under namespace 'test'Top
5 楼saucer(思归)回复于 2006-03-05 09:53:55 得分 0
mi.Invoke(obj, null);Top
6 楼sp1234(asp.net不是一个语言,是一个操作系统)回复于 2006-03-05 09:56:30 得分 11
System.Reflection.Assembly.Load 或 System.Reflection.Assembly.LoadFrom,创建饮用dll的Assembly。
然后,使用此Assembly的CreateInstance方法或者GetType(...).Getconstructor(...).Invoke(...)方法创建实例。Top
7 楼lionwys(lionwys)回复于 2006-03-09 11:56:11 得分 0
xiexielaTop




