以文本方式查看主题 - 中文XML论坛 - 专业的XML技术讨论区 (http://bbs.xml.org.cn/index.asp) -- 『 编程心得 』 (http://bbs.xml.org.cn/list.asp?boardid=42) ---- c# 反射的使用方法[原创] (http://bbs.xml.org.cn/dispbbs.asp?boardid=42&rootid=&id=68077) |
-- 作者:jcsee007 -- 发布时间:10/10/2008 10:08:00 AM -- c# 反射的使用方法[原创] c# 反射的使用方法 在网上查找了不少的资料,可以说大同小异,概念性的东西网上一搜一堆,今天把 反射的东西整理了一下,供大家使用,我保证我这里是最全面的东西,当然也是基 础的东西,在学好了这一切的基础上,大家可以学习反射的具体插件等应用,老鸟 就不用看了。首先我们建立一个类库,将它生成为HelloWorld.dll, namespace Webtest public interface interface1 } public String Write; public String Writea } private String Writeb } public ReflectTest() public ReflectTest(string str1,string str2) } public string WriteString(string s,int b) public static string WriteName(string s) public string WriteNoPara() private string WritePrivate() using System.Threading; static void Main() 同的效果 foreach (Module module in modules) 模块的名字本例为"HelloWorld.dll" 下面一个效果 //Type a = t.GetType("Webtest.ReflectTest");// 例,后面的bb为有参构造函数的参数 上面方法相同 MethodInfo mi1 = a.GetMethod("WriteName"); MethodInfo mi2 = a.GetMethod("WriteNoPara"); 调用 MethodInfo mi3 = a.GetMethod("WritePrivate",BindingFlags.Instance | BindingFlags.NonPublic); 用 //Console.Write(s3); | BindingFlags.NonPublic | BindingFlags.Public); PropertyInfo pi2 = a.GetProperty("Writeb", BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public); FieldInfo fi1 = a.GetField("Write"); ConstructorInfo asCI = a.GetConstructor(new Type[] ...{ typeof(string), typeof(string) }); (Webtest.interface1)t.CreateInstance("Webtest.ReflectTest"); (Webtest.ReflectTest)t.CreateInstance("Webtest.ReflectTest"); (Webtest.interface1)Activator.CreateInstance(a); (TestDelegate)Delegate.CreateDelegate(typeof(TestDelegate), obj, "WriteString"); 来,自己按照我的分隔一部分一部分的来,保证你对反射的学习,会事半功倍.当然有 关于其方法我会继续补充,想了这么些就先写下来吧. 转自:http://www.gdglc.com/bbs/dispbbs.asp?boardid=35&Id=20141 |
W 3 C h i n a ( since 2003 ) 旗 下 站 点 苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》 |
3,468.750ms |