protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e) { try { //读取选择指定的dll文件 string strPath = (sender as DropDownList).SelectedValue.Trim(); string NameSpace = this.DropDownList1.SelectedIndex == 0 ? "Demo.Test" : "DemoXml.Test"; //加载指定的程序集之内存中 Assembly assembly = Assembly.LoadFrom(strPath); //返加程序集中的一个指定的对象,哪果是返回所有对象,则用GetTypes()返回一个Typt对象的数组. Type T = assembly.GetType(NameSpace); //返回方法信息(公共方法) MethodInfo mi = T.GetMethod("getList"); //根据前面type类型创建一个对象 object o = Activator.CreateInstance(T); //参数 object[] par = new object[] { "E01" }; //通过MethodInfo对象的Invoke方法,动态调用此方法,参数o是因为实例方法需要在调用时有一个实例存在 DataTable dt = (DataTable)mi.Invoke(o, par); this.GridView1.DataSource = dt; this.GridView1.DataBind(); } catch (Exception ex) { //do Exception } } } |