天天看点

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方法

   }

}

}