反射的补充

反射的补充

加载程序集,获取各种item

代码很明确,直接上了

using System;
using System.Collections.Generic;
using System.Text;
using System.Reflection;

namespace FanShe
{
    public class Test
    {
        Assembly myAssembly = null;

        public Test()
        {
            //第一种方法:
           // myAssembly=Assembly.LoadFrom(@"E:\study\TestDemo\FanShe\bin\Debug\FanShe.exe");//路径

            //第二种方法
            myAssembly = Assembly . Load( "FanSheDll"); //注意,此处是因为程序集名为"FanSheDll",而不是"FanShe.Dll",加载的其它dll  

        }

        public void Start()
        {
            Assembly [] assemblys = AppDomain . CurrentDomain . GetAssemblies(); //得到当前的所有程序集

            foreach ( Assembly item in assemblys)
            {
                this . getreflectioninfo( item);
            }
        }

        //定义一个获取反射内容的方法
        private void getreflectioninfo( Assembly myassembly)
        {
            Type [] typearr = myAssembly . GetTypes(); //获取类型
            foreach ( Type type in typearr) //针对每个类型获取详细信息
            {
                //获取类型的结构信息
                ConstructorInfo [] myconstructors = type . GetConstructors();

                //获取类型的字段信息
                FieldInfo [] myfields = type . GetFields();

                //获取方法信息
                MethodInfo [] myMethodInfo = type . GetMethods();

                //获取属性信息
                PropertyInfo [] myproperties = type . GetProperties();

                //获取事件信息
                EventInfo [] Myevents = type . GetEvents();
            }
        }

    }
}

你可能感兴趣的:(反射)