亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

利用.net反射動(dòng)態(tài)調(diào)用指定程序集的中的方法

2019-11-18 16:45:16
字體:
供稿:網(wǎng)友

    每個(gè).net程序集除了代碼外都額外包含了元數(shù)據(jù)。元數(shù)據(jù)包括了程序集本身的信息,比如版本號(hào),引用了什么程序集,所有類型的信息,包括其方法、屬性、字段。使用.net反射,可以在運(yùn)行時(shí)讀取這些信息,并且可以動(dòng)態(tài)地調(diào)用方法。
     項(xiàng)目快完了,終于有時(shí)間來寫blog了,,
     做一個(gè)動(dòng)態(tài)調(diào)用程序集指定方法的例子。
     項(xiàng)目1(Demo)中包含一個(gè)Test類,Test類中寫了一個(gè)getList方法,這個(gè)方法返回的數(shù)據(jù)是手工加入的。源代碼如下:
      項(xiàng)目1
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;

namespace Demo
{
    public class Test
    {
        public DataTable getList(string id)
        {
            DataTable dt = new DataTable();
            dt.Columns.Add(new DataColumn("id"));
            dt.Columns.Add(new DataColumn("name"));
            dt.Columns.Add(new DataColumn("sex"));
            DataRow dr = dt.NewRow();
            dr["id"] = "zl";
            dr["name"] = "張鈴";
            dr["sex"] = "男";
            dt.Rows.Add(dr);
            dr = dt.NewRow();
            dr["id"] = "zl";
            dr["name"] = "李四";
            dr["sex"] = "女";
            dt.Rows.Add(dr);
            return dt;
        }
    }
}

     項(xiàng)目2(Demoxml)中包含一個(gè)Test類,Test類中寫了一個(gè)getList方法,這個(gè)方法返回的數(shù)據(jù)是從數(shù)據(jù)庫讀取的。源代碼如下:
項(xiàng)目2
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using System.Xml;
namespace DemoXml
{
    public class Test
    {
        PRivate SqlConnection cn;
        public DataTable getList(string id)
        {
            try
            {
                cn = new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["pubs"]);
                SqlCommand cmd = new SqlCommand();
                SqlDataAdapter da = new SqlDataAdapter();
                cmd.CommandText = "SELECT au_id as id,au_lname as name,au_fname as sex from authors";
                cmd.CommandType = CommandType.Text;
                cmd.Connection = cn;
                da.SelectCommand = cmd;
                DataTable dt = new DataTable();
                da.Fill(dt);
                return dt;
            }
            catch (Exception ex)
            {
                throw new applicationException("出現(xiàn)異常:"+ex.Message+ex.StackTrace);
            }
            finally
            {
                cn.Close();
                cn = null;
            }
        }
    }
}

      項(xiàng)目3(WebDemo)中演示動(dòng)態(tài)用指定程序集中g(shù)etList的方法返回一個(gè)DataTable,用一個(gè)gridview顯示其返回的數(shù)據(jù)。
調(diào)用演示
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Reflection;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            DropBind();
        }
    }
    數(shù)據(jù)初始化,可配置在web.config文件中#region 數(shù)據(jù)初始化,可配置在web.config文件中
    public void DropBind()
    {
        DataTable dt = new DataTable();
        dt.Columns.Add(new DataColumn("name"));
        dt.Columns.Add(new DataColumn("filepath"));
        DataRow dr = dt.NewRow();
        dr["name"] = "加載自己定義數(shù)據(jù)";
        dr["filepath"] = Server.MapPath(@"Files/Demo.dll");
        dt.Rows.Add(dr);
        dr = dt.NewRow();
        dr["name"] = "加載xml數(shù)據(jù)";
        dr["filepath"] = Server.MapPath(@"Files/DemoXml.dll");
        dt.Rows.Add(dr);
        this.DropDownList1.DataSource = dt;
        this.DropDownList1.DataTextField = "name";
        this.DropDownList1.DataValueField = "filepath";
        this.DropDownList1.DataBind();
    }
    #endregion

    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";
            //加載指定的程序集之內(nèi)存中
            Assembly assembly = Assembly.LoadFrom(strPath);
            //返加程序集中的一個(gè)指定的對(duì)象,哪果是返回所有對(duì)象,則用GetTypes()返回一個(gè)Typt對(duì)象的數(shù)組.
            Type T = assembly.GetType(NameSpace);
            //返回方法信息(公共方法)
            MethodInfo mi = T.GetMethod("getList");
            //根據(jù)前面type類型創(chuàng)建一個(gè)對(duì)象
            object o = Activator.CreateInstance(T);
            //參數(shù)
            object[] par = new object[] { "E01" };
            //通過MethodInfo對(duì)象的Invoke方法,動(dòng)態(tài)調(diào)用此方法,參數(shù)o是因?yàn)閷?shí)例方法需要在調(diào)用時(shí)有一個(gè)實(shí)例存在
            DataTable dt = (DataTable)mi.Invoke(o, par);
            this.GridView1.DataSource = dt;
            this.GridView1.DataBind();
        }
        catch (Exception ex)
        {
            //do Exception
        }
    }
}

       通過Assembly.LoadFrom方法返回的Assembly對(duì)象,可以讀取其中的元數(shù)據(jù)。其中的GetType會(huì)返回一個(gè)用于表示指定程序集的type對(duì)象(讀取程序集中的所有類型用GetTypes會(huì)返回一個(gè)type對(duì)象的數(shù)組)。
       返回方法信息(公共方法)
       MethodInfo mi = T.GetMethod("getList");
       根據(jù)前面type類型創(chuàng)建一個(gè)對(duì)象
       object o = Activator.CreateInstance(T);
       參數(shù)
       object[] par = new object[] { "E01" };
       通過MethodInfo對(duì)象的Invoke方法,動(dòng)態(tài)調(diào)用此方法,參數(shù)o是因?yàn)閷?shí)例方法需要在調(diào)用時(shí)有一個(gè)實(shí)例存在.
       DataTable dt = (DataTable)mi.Invoke(o, par);
       調(diào)用返回的數(shù)據(jù)顯示列表中。
示例下載:http://www.49028c.com/Files/NetFans/Solution2.rar


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
欧美色资源站| 天堂网在线中文| 777午夜精品视频在线播放| av电影高清在线观看| 欧洲美女女同性互添| 狠狠色丁香久久婷婷综合_中| 久久久久中文| 免费av播放| 中文在线最新版天堂8| 91午夜在线播放| 国产精品久久久久免费| 91精品国自产在线| 波多野结衣在线| 国产.com| 91黄色免费网站| 国产二区在线播放| 日韩 欧美 综合| 成人小视频免费在线观看| 欧美黑人激情| 亚洲一区bb| 又粗又黑又大的吊av| 精品无码av一区二区三区不卡| 在线免费观看日韩视频| 欧美性受xxxx| 最新中文字幕日本| 91福利在线看| 国产主播一区| 天天综合入口| 成年人在线免费观看视频网站| 麻豆一区二区三区四区精品蜜桃| 久久久精品美女| 午夜影院在线| 国产不卡视频在线观看| 国产欧美一区二区三区沐欲| 久久精品人人做| 国产一区二区在线免费观看| 久久久久中文字幕2018| 欧美激情一区二区三区在线视频观看| 国产农村av| 欧美综合激情| 免费观看性欧美大片无片| 亚洲中文字幕无码中文字| 在线成人亚洲| 久久久精品在线| 成人18视频在线观看| 久久精品国产成人av| 国产精自产拍久久久久久蜜| 日韩免费高清一区二区| 久久一区二区视频| 日本久久91av| 久久综合久久鬼色| 精品成人无码久久久久久| 国产脚交av在线一区二区| 最近日韩中文字幕| 99久久精品免费看国产一区二区三区| 午夜成人亚洲理伦片在线观看| 国产黄色美女视频| 国色天香一区二区| 国产在线免费视频| 亚洲 精品 综合 精品 自拍| 欧美污在线观看| 日韩av成人| 综合图区亚洲| 91精品国产91久久久久久吃药| 精品国产一区二区三区久久狼5月| 欧美性感美女h网站在线观看免费| 久久国产精彩视频| a在线视频v视频| 日韩区国产区| 国产综合色激情| 国产传媒欧美日韩成人精品大片| 亚洲少妇自拍| 奇米视频888战线精品播放| 中文字幕一区二区在线播放| 日韩欧美午夜| 亚洲一卡二卡在线| 伊人成综合网伊人222| 日韩一区二区久久| 日韩精品一二区| 黄色av网址在线观看| 国产又粗又猛又爽又黄91| 欧美成人精品福利| 99在线观看免费视频精品观看| 成年网站免费| 亚洲一区二区成人在线观看| 久久国产精品成人免费观看的软件| 欧美日韩一区自拍| 日韩一区二区三区久久| 97在线视频免费观看| 先锋男人资源站| 国产精品久久久久久中文字| 99re这里只有精品首页| 午夜激情福利电影| 欧美人伦禁忌dvd放荡欲情| 成人午夜大片免费观看| 国产精品久久久久久免费播放| 欧美视频第一页| 国产香蕉精品| 巨胸大乳www视频免费观看| 欧美精品尤物在线| 亚洲一区二区三区视频播放| 欧美国产在线看| 精品欧美久久久| 国产精一区二区| 久久er99精品| 深夜宅男网站免费进入| 波多野结衣三级视频| 一区二区视频免费完整版观看| 久久99蜜桃综合影院免费观看| 国产精品一区二区美女视频免费看| xxxxbbbb欧美| 成人黄色片在线| 午夜时刻免费入口| 国产美女在线播放| 在线观看亚洲精品视频| 美女福利视频网| 美女爆乳18禁www久久久久久| 欧美日韩一区二区三区四区不卡| 色综合色综合网色综合| 日本大片在线播放| 亚洲免费毛片网站| 极品少妇xxxx精品少妇偷拍| 国产精品亚洲美女av网站| 国产精品亚洲欧美一级在线| 伊人影院在线播放| 99热精品在线播放| 66m—66摸成人免费视频| 一区二区三区四区不卡| 国产一区二区在线免费视频| 亚洲国产精彩中文乱码av在线播放| 丰满诱人av在线播放| 一区二区三区免费播放| 五月婷婷丁香色| 日韩午夜高潮| 欧美成人专区| 99香蕉国产精品偷在线观看| 免费成人在线观看| 99精品人妻国产毛片| 91九色精品| 日本韩国免费观看| 黄色欧美成人| 亚洲精品视频99| 国产精品国产成人国产三级| 黄色成人在线| 蜜臀精品一区二区三区在线观看| 国产精品大全| 一本色道久久88精品综合| 亚洲精品wwwww| 久久精品国产亚洲AV熟女| 国产模特精品视频久久久久| 翔田千里88av中文字幕| 九九九九免费视频| 欧美黑人3p| 神马久久久久| 日韩欧美一区二区视频在线播放| 亚洲欧洲av一区二区| 免费成人av在线| 69久久99精品久久久久婷婷| av网在线观看| 在线观看免费电影| 好久没做在线观看| 精品奇米国产一区二区三区| 一呦二呦三呦国产精品| 欧美 日韩 国产在线观看| 欧美片第1页综合| 草莓视频末满18勿| 91精品国产色综合久久不卡蜜臀| sm在线观看| 黄色一级片在线观看| 欧美精品xxx| 美女网站视频久久| 少妇与大狼拘作爱性a| 日韩av在线播放中文字幕| 国产女优在线播放| 无码人妻aⅴ一区二区三区69岛| 亚洲国产福利在线| 国产精品久久久久久久牛牛| 成年午夜在线| 婷婷激情久久| 97久久亚洲| 国产精品美女在线播放| 久久99伊人| 4444kk在线观看| 国产91视觉| jizz在线播放| 女同一区二区三区| 国产精品国产三级国产普通话对白| zzjj国产精品一区二区| 中文字幕在线播放一区| 日本dvd播放| 日本熟妇毛耸耸xxxxxx| 久久www成人_看片免费不卡| 好紧好硬好湿我太爽了| 香港三级韩国三级日本三级| 日韩电影大片中文字幕| 久久国产柳州莫菁门| 欧美激情办公室videoshd| 欧美性猛交xxxx乱大交3| 国产激情美女久久久久久吹潮| 美女搡bbb又爽又猛又黄www| 激情久久av一区av二区av三区| 欧美一区二区三区四| 人人玩人人添人人澡欧美| 国产精品jizz在线观看麻豆| 免费男同深夜夜行网站| 国产精品一区二区三区四区| 免费看黄网站在线观看| 欧美成人精品| 日韩欧美在线番号| 精品美女一区二区三区| 国产一级中文字幕| 国产剧情av麻豆香蕉精品| 爱爱爱爱免费视频| 午夜精品久久久久久久男人的天堂| 国内av在线播放| www.黄色国产| 免费三级在线观看| www.国产精品一二区| 国产一区二区三区四| 男人的天堂a在线| 男人插女人下面免费视频| av日韩亚洲| 永久免费看mv网站入口亚洲| 黄网在线观看视频| 免费一级a毛片| 91精品久久久久久综合乱菊| 99精品视频在线看| 日韩在线欧美在线| 天天爽夜夜爽夜夜爽精品视频| 国产视频在线免费观看| 一级免费在线观看| 国产一级淫片a| 99re在线视频这里只有精品| 在线看片中文字幕| 在线观看一区二区视频| 亚洲va久久久噜噜噜久久天堂| 国产精品a久久久久| 日本一区不卡| 另类激情亚洲| 亚洲精品黄网在线观看| 成人天堂入口网站| av无码av天天av天天爽| 成人午夜激情av| 99热手机在线观看| 日韩超碰人人爽人人做人人添| 四虎永久免费影库二三区| 亚洲国模精品私拍| 国产成人一区二区精品非洲| 免费看成年视频网页| 精品91久久久久| 在线成人免费av| 少妇高潮惨叫久久久久| 亚洲女人天堂成人av在线| 快射av在线播放一区| 欧美日韩一区二区三区免费看| 国产69精品久久久久毛片| 亚洲精品欧美日韩专区| 欧美妇乱xxxxx视频| 国产精品一区二区入口九绯色| 日韩av在线电影网| 日日摸夜夜爽人人添| 日韩欧美一区二区三区在线| 亚洲欧美精品suv| 欧美午夜女人视频在线| 日韩一区二区电影| 亚洲欧洲第一视频| 亚洲精品视频在线播放| 污网站免费在线观看| 国产三级视频在线播放| 天天射天天操天天干| 免费在线a视频| 中文字幕欧美人妻精品一区| 天堂精品久久久久| 这里都是精品| 手机在线看片日韩| 国产精品密蕾丝视频下载| 毛片毛片毛片毛片毛片毛片毛片毛片毛片| caoporn国产精品| 成人午夜在线免费| 在线播放高清视频www| 水蜜桃在线视频| 欧美人与动xxxxz0oz| www.色五月.com| 国产一伦一伦一伦| 丁香天五香天堂综合| 女优一区二区三区| 日韩视频在线观看| 免费黄色在线网址| 成人欧美一区二区三区黑人免费| 国产a级毛片一区| 午夜精彩国产免费不卡不顿大片| 在线播放色视频| 2017亚洲男人天堂| 夜色资源网av在先锋网站观看| 116美女写真午夜一级久久| 77777亚洲午夜久久多人| 九九九伊在线综合永久| 两个人看的免费完整在线观看| 免费黄视频在线观看| 色欧美激情视频在线| 欧美一卡2卡3卡4卡| 翔田千里在线视频| 久久免费一级片| 久久电影院7| 中文字幕免费中文| 久久久av毛片精品| 中文字幕一区二区三区日韩精品| 国产又大又长又粗| 夜间精品视频| 黄色成人免费观看| ed2k情侣啪啪91av| 97人人模人人爽视频一区二区| 男人添女荫道口喷水视频| 成年人黄色电影| 天天看片激情网站| 国产欧美一区二区三区精品酒店| 97人妻一区二区精品视频| 日韩国产欧美在线播放| 久青草国产97香蕉在线视频| 国产 日韩 欧美 精品| 日本黄色免费录像| 欧美成熟毛茸茸| 国产成人免费91av在线| 国模私拍视频在线| 精品一区二区三区四区五区六区| 91精品国产高清一区二区三区蜜臀| 国产偷人视频免费| 国产一区二区福利|