C# 反射(Reflection)

反射(Reflection)可以在运行时获 得.NET中每一个类型(包括类、结构、委托、接口和枚举等)的成员,包括方法、属性、事件,以及构造函数等。

反射用到的命名空间:
    System.Reflection
    System.Type
    System.Reflection.Assembly

using System;
using System.Reflection;

namespace test
{

 
  public class testReflectionTest {
        
        /// <summary>
        /// 反射名称
        /// </summary>      
        public string GetName()
        {
            return "张三";
        } 
       static void Main()
       {
           Type type = typeof(testReflectionTest);
           string name = type.Name;//获取当前成员的名称
           string fullName = type.FullName;//获取类的全部名称不包括程序集
           string nameSpace = type.Namespace;//获取该类的命名空间
           var assembly = type.Assembly;//获取该类的程序集名
           var module = type.Module;//获取该类型的模块名            
           var memberInfos = type.GetMembers();//得到所有公共成员

           Console.WriteLine(name);
           Console.WriteLine(fullName);
           Console.WriteLine(nameSpace);
           Console.WriteLine(assembly);
           Console.WriteLine(module);
           Console.WriteLine(memberInfos);


           //获取当前执行代码的程序集
           Assembly assem = Assembly.GetExecutingAssembly();
           Console.WriteLine(assem.FullName);

           var types = assem.GetTypes();//程序集下所有的类
           Console.WriteLine("程序集包含的类型:");
           foreach (var item in types)
           {
               Console.WriteLine("" + item.Name);
           }

         
           Console.ReadKey();
       }
   }

 
     
 }
View Code

 

posted @ 2017-04-16 17:00  ADFL  阅读(135)  评论(0编辑  收藏  举报