反射的补充
反射的补充
加载程序集,获取各种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();
}
}
}
}
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();
}
}
}
}
浙公网安备 33010602011771号