天天看點

C# 完整的反射(調用程式集)

using System;

using System.Reflection;

namespace ConsoleApplication3

{

/// <summary>

/// Class1 的摘要說明。

/// </summary>

class Class1

{

   /// <summary>

   /// 應用程式的主入口點。

   /// </summary>

   [STAThread]

   static void Main(string[] args)

   {

    //四部份:清單 原資料 mis代碼 資源清單

    Assembly a =Assembly.LoadFrom(@"C:/Documents and Settings/Administrator/My Documents/Visual Studio Projects/ClassLibrary2/bin/Debug/ClassLibrary2.dll");

            //路徑表明程式集的位置

    Type[] t =a.GetTypes();//擷取所有的内型

    foreach(Type tt in t)

    {

     Console.WriteLine(tt.Name);//獲得内的名稱

    }

    MethodInfo [] mm = t[0].GetMethods();//獲得内裡的方法,傳回所有方法集合

    foreach(MethodInfo m in mm)

    {

     Console.WriteLine(m.Name);//周遊獲得内裡的方法

    }

            object o = Activator.CreateInstance(t[0],true);

            t[0].InvokeMember("GetValue",BindingFlags.InvokeMethod,null,o,null);//執行t[0]中的GetValue方法

   }

}

}