反射的补充

反射的补充

加载程序集,获取各种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();
            }
        }

    }
}
posted @ 2010-10-11 14:31  双击  阅读(110)  评论(0)    收藏  举报