- namespace 反射
- {
- class Program
- {
- static void Main(string[] args)
- {
- //Assembly ass = Assembly.LoadFile(@"d:/Demo.dll");
- //Type type = ass.GetType("Demo.ReflectCLASS");
- System.Reflection.Assembly ass;
- Type type ;
- object obj;
- try
- {
- ass = System.Reflection.Assembly.LoadFile(@"d:/Demo.dll");
- type = ass.GetType("Demo.ReflectCLASS");//必须使用名称空间+类名称
- System.Reflection.MethodInfo method = type.GetMethod("WriteString");//方法的名称
- obj = ass.CreateInstance("Demo.ReflectCLASS");//必须使用名称空间+类名称
- string s = (string)method.Invoke(obj, new string[] { "jianglijun" }); //实例方法的调用
- Console.WriteLine(s );
- method = type.GetMethod("WriteName");//方法的名称
- s = (string)method.Invoke(null, new string[] { "jianglijun" }); //静态方法的调用
- Console.WriteLine(s);
- method = type.GetMethod("WriteNoPara");//无参数的实例方法
- s = (string)method.Invoke(obj, null);
- Console.WriteLine(s );
- method = null;
- }
- catch(Exception ex)
- {
- }
- }
- }
- }
10-18