C# 動態載入Dll

來源:互聯網
上載者:User

標籤:c#   動態   載入   dll   反射   

1、建立測試dll及方法,用vs2010建立winform程式,具體代碼如下:

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace reflect{    public partial class Form1 : Form    {        public Form1()        {            InitializeComponent();        }        public string TestReflect()        {            MessageBox.Show("動態載入Dll測試");            return "TestReflect傳回值";        }    }}
2、動態載入代碼

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.Reflection;namespace reflectTest{    public partial class Form1 : Form    {        public Form1()        {            InitializeComponent();        }        private void button1_Click(object sender, EventArgs e)        {            //載入dll中的函數            //Assembly asm = Assembly.Load(strDllPath);//載入當前根目錄的dll            Assembly asm = Assembly.LoadFile(@"F:\WorkSpace\VS測試代碼\反射測試001\反射message方法\reflect\reflect\bin\Debug\reflect.dll");//根據dll檔案實際路徑載入            //用類型的命名空間和類獲得類型            System.Type FromClass = asm.GetType("reflect.Form1");            //需要執行個體化類型,才可以使用,參數可以人為的指定,也可以無參數,靜態執行個體可以省略            Object obj = System.Activator.CreateInstance(FromClass);            //通過方法名稱獲得方法(調試走到下面這一步的時候,就可以彈出“動態載入Dll測試”這個訊息了)            MethodInfo method = FromClass.GetMethod("TestReflect");            //擷取TestReflect函數的傳回值,在這裡會擷取到"TestReflect傳回值",如果沒有傳回值,可以省略這一步            object o = method.Invoke(obj, new object[] { });        }    }}
小註:

通過方法名稱獲得方法中的方法必須是public的!



相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.