⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 反射程序中的类型(重要).txt

📁 学习c#语言的一本好书可以帮助初学者
💻 TXT
字号:

类型成员:由MemberInfo定义,它包括字段、构造器、方法、属性、事件、卡套类型。
GetMembers  返回类型中的所有成员。

//只有公有成员才被显示出来

using System;
using System.Reflection;
namespace TestReflector
{
	
	//演示类型
	class SomeType
	{
		public class InenerType{}
		public Int32 SomeField=0;
		private static String goo=null;
		private void SomeMethod(){}
		private TimeSpan SomeProperty
		{
			get{return new TimeSpan();}
			set{}
		}
		public static event System.Threading.ThreadStart SomeEvent;

		private void NoCompilerWarnings()
		{
			SomeEvent.ToString();
			goo.ToString();
		}
	}

	public class  Reflector
	{
		
		public static void RefectOnAssembly(Assembly assem)
		{
			WriteLine(0,"Assembly:{0}",assem);//程序集全名
			
			//查找模块
			foreach(Module m in assem.GetModules())//获取此程序集的所有模块并遍历
			{
				WriteLine(1,"Module:{0}",m);//模块名称
				//查找类型
				foreach(Type t in m.GetTypes())//获取此模块的所有类型并遍历
				{
					WriteLine(2,"Type:{0}",t);//类型名称
					//查找成员(构造器、方法、字段、属性、事件、枚举、内部类型)
					foreach(MemberInfo mi in t.GetMembers())//获取此类型的所有成员并遍历
					{
						WriteLine(3,"{0}:{1}:",mi.MemberType,mi);
					}
				}
			}
		}
		private static void WriteLine(Int32 indent,String format,params Object[] args)
		{
			Console.WriteLine(new String(' ',3*indent)+format,args);
		}
	}
	class App
	{
		/// <summary>
		/// 应用程序的主入口点。
		/// </summary>
		[STAThread]
		static void Main(string[] args)
		{
			Assembly assem=Assembly.GetExecutingAssembly();//得到当前程序集
			Reflector.RefectOnAssembly(assem);
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -