成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

關(guān)于反射技術(shù)的實際應(yīng)用

這篇文章運用簡單易懂的例子給大家介紹關(guān)于反射技術(shù)的實際應(yīng)用,代碼非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

創(chuàng)新互聯(lián)是一家專業(yè)提供龍勝企業(yè)網(wǎng)站建設(shè),專注與成都做網(wǎng)站、成都網(wǎng)站設(shè)計、HTML5建站、小程序制作等業(yè)務(wù)。10年已為龍勝眾多企業(yè)、政府機構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站設(shè)計公司優(yōu)惠進行中。

項目結(jié)構(gòu)

如下圖:

關(guān)于反射技術(shù)的實際應(yīng)用

定義插件接口

在項目ConsoleApplication6.IService中,定義了兩個接口,Run代表行駛,Trun代表轉(zhuǎn)向,如下代碼:

 1 namespace ConsoleApplication6.IService 2 { 3     /// <summary> 4     /// 創(chuàng)建一個車的接口 5     /// </summary> 6     public interface ICarService 7     { 8         /// <summary> 9         /// 行駛10         /// </summary>11         void Run();12 13         /// <summary>14         /// 轉(zhuǎn)向15         /// </summary>16         /// <param name="direction"></param>17         void Turn(Direction direction);18 19     }20 21     public enum Direction22     {23         East,24         Weast,25         South,26         North37     }28 }

插件程序?qū)崿F(xiàn)

這里新建了兩個項目分別實現(xiàn)插件程序,分別是ConsoleApplication6.Service.BMW和ConsoleApplication6.Service.BenZ,代碼如下:

 1 namespace ConsoleApplication6.Service.BMW 2 { 3     public class BMWCarService: ICarService 4     { 5         /// <summary> 6         /// 行駛 7         /// </summary> 8         public void Run() 9         {10             Console.WriteLine("BMW Car Run!");11         }12 13         /// <summary>14         /// 轉(zhuǎn)向15         /// </summary>16         /// <param name="direction"></param>17         public void Turn(Direction direction)18         {19             Console.WriteLine(string.Format("BMW Car turn:{0}", direction.ToString()));20         }21     }22 }
 1 namespace ConsoleApplication6.Service.BenZ 2 { 3     public class BenZCarService: ICarService 4     { 5         /// <summary> 6         /// 行駛 7         /// </summary> 8         public void Run() 9         {10             Console.WriteLine("BenZ Car Run!");11         }12 13         /// <summary>14         /// 轉(zhuǎn)向15         /// </summary>16         /// <param name="direction"></param>17         public void Turn(Direction direction)18         {19             Console.WriteLine(string.Format("BenZ Car turn:{0}", direction.ToString()));20         }21     }22 }

運行程序

接下來我們就可以利用反射來運行這個插件程序了,如下代碼:

 1 namespace ConsoleApplication6 2 { 3     class Program 4     { 5         static void Main(string[] args) 6         { 7             var assembly = Assembly.Load("ConsoleApplication6.Service.BMW");//也可以從配置文件中讀取 8             var t = assembly.GetType("ConsoleApplication6.Service.BMW.BMWCarService");//也可以從配置文件中讀取 9 10             //創(chuàng)建一輛車的實例11             var obj = Activator.CreateInstance(t);12             ICarService car = obj as BMWCarService;13             if (car != null)14             {15                 car.Run();16                 car.Turn(Direction.East);17             }18 19             Console.ReadKey();20         }21     }22 }

這樣,一個簡單的插件程序就完成了,同時,如果我們開發(fā)類似的插件框架,就會大量使用到反射技術(shù)。

關(guān)于關(guān)于反射技術(shù)的實際應(yīng)用就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

網(wǎng)站欄目:關(guān)于反射技術(shù)的實際應(yīng)用
本文URL:http://jinyejixie.com/article0/jdoeio.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、外貿(mào)網(wǎng)站建設(shè)、面包屑導(dǎo)航、網(wǎng)站改版、網(wǎng)站策劃、品牌網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

手機網(wǎng)站建設(shè)
普格县| 石台县| 宾阳县| 英德市| 徐州市| 河西区| 抚州市| 祁连县| 富阳市| 宁南县| 洪雅县| 临桂县| 新密市| 马龙县| 康乐县| 阜南县| 阿城市| 永年县| 石家庄市| 辽阳县| 新宾| 南京市| 石河子市| 丰原市| 抚宁县| 敖汉旗| 东城区| 瑞昌市| 黑龙江省| 阳新县| 伊春市| 南和县| 温宿县| 垫江县| 黄浦区| 白山市| 开江县| 宁夏| 龙里县| 丰县| 琼海市|