精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

談談程序集加載和反射機制

開發(fā) 后端
最近一直都在看關于程序集加載和反射方面的資料, 所以在這里把我所學習到的東西記錄下來,方便自己以后復習,也給不懂的朋友參考。

一、程序集的加載

JIT編譯器器將IL代碼編譯成本地代碼時, 會查看IL代碼中引用了哪些類型。在運行過程中,JIT編譯器利用程序集的TypeRef和AssemblyRef元數(shù)據(jù)表來確定哪一個程序集定義了所引用的類型,然后JIT編譯器將對應程序集加載到AppDomain中,在內(nèi)部,CLR使用System.Reflection.Assembly類的靜態(tài)方法Load來嘗試加載一個程序集。然而如果我們想動態(tài)加載一個程序集時,可以使用Assembly的Load方法來動態(tài)加載程序集,其中Assembly類中還提供了其他的加載程序集方法,有LoadFrom(string path), LoadFile(stringassemblyFile)等,具體方法的使用和解釋可以參照MSDN中的介紹:http://msdn.microsoft.com/zh-cn/library/xbe1wdx9

二、反射機制

.net中反射在運行中過程中解析程序集中的元數(shù)據(jù),獲得類型中的成員(包括字段、構造器、方法、屬性、事件等)信息。

動態(tài)加載一個程序集并獲得類型中的成員

把下面的類放在一個類庫工程中,并編譯生成程序集(例如為ClassLibrary1.dll,假設把dll放在D盤根目錄下面)

  1. public class ReflectTestClass 
  2.    { 
  3.       public  string name; 
  4.       public int age; 
  5.       public string Name 
  6.       { 
  7.           get { return name; } 
  8.           set { name = value; } 
  9.       } 
  10.  
  11.       public int Age 
  12.       { 
  13.           get { return age; } 
  14.           set { age = value; } 
  15.       } 
  16.  
  17.        /// <summary> 
  18.        /// No Paramter Constructor 
  19.        /// </summary> 
  20.       public ReflectTestClass() 
  21.       {  
  22.       } 
  23.  
  24.        /// <summary> 
  25.        /// Constructor with Parameter 
  26.        /// </summary> 
  27.        /// <param name="name"></param> 
  28.        /// <param name="age"></param> 
  29.        public ReflectTestClass(string names,int ages) 
  30.        { 
  31.            this.name = names; 
  32.            this.age = ages; 
  33.        } 
  34.  
  35.        public string writeString(string name) 
  36.        { 
  37.            return "Welcome " + name; 
  38.        } 
  39.  
  40.        public static string WriteName(string name) 
  41.        { 
  42.            return "Welcome "+name +" Come here"
  43.        } 
  44.  
  45.        public string WirteNopara() 
  46.        { 
  47.            return "The method is no parameter "
  48.        } 
  49.    } 

然后建立一個控制臺程序用來動態(tài)加載上面生成的程序集和輸出類型中的成員,代碼中有詳細的介紹。

  1. class Program 
  2.     { 
  3.         static void Main(string[] args) 
  4.         { 
  5.             Assembly ass; 
  6.             Type[] types; 
  7.             Type typeA; 
  8.             object obj; 
  9.             try 
  10.             { 
  11.                 // 從本地中 加載程序集 然后從程序集中通過反射獲得類型的信息的,并且調用方法 
  12.                 ass = Assembly.LoadFrom(@"D:\ClassLibrary1.dll"); 
  13.                 types = ass.GetTypes(); 
  14.                 foreach (Type type in types) 
  15.                 { 
  16.                     Console.WriteLine("Class Name is " + type.FullName); 
  17.                     Console.WriteLine("Constructor Information"); 
  18.                     Console.WriteLine("-----------------------"); 
  19.                     // 獲取類型的結構信息 
  20.                     ConstructorInfo[] myconstructors = type.GetConstructors(); 
  21.                     ShowMessage<ConstructorInfo>(myconstructors); 
  22.  
  23.                     Console.WriteLine("Fields Information"); 
  24.                     Console.WriteLine("-----------------------"); 
  25.                     // 獲取類型的字段信息 
  26.                     FieldInfo[] myfields = type.GetFields(); 
  27.                     ShowMessage<FieldInfo>(myfields); 
  28.  
  29.                     Console.WriteLine("All Methods Information"); 
  30.                     Console.WriteLine("-----------------------"); 
  31.                     // 獲取方法信息 
  32.                     MethodInfo[] myMethodInfo = type.GetMethods(); 
  33.                     ShowMessage<MethodInfo>(myMethodInfo); 
  34.  
  35.                     Console.WriteLine("All Properties Information"); 
  36.                     Console.WriteLine("-----------------------"); 
  37.                     // 獲取屬性信息 
  38.                     PropertyInfo[] myproperties = type.GetProperties(); 
  39.                     ShowMessage<PropertyInfo>(myproperties); 
  40.                 } 
  41.  
  42.                 // 用命名空間+類名獲取類型 
  43.                 typeA = ass.GetType("ClassLibrary1.ReflectTestClass"); 
  44.                  
  45.                 // 獲得方法名稱 
  46.  
  47.                 MethodInfo method = typeA.GetMethod("writeString"); 
  48.  
  49.                 // 創(chuàng)建實例 
  50.                 obj = ass.CreateInstance("ClassLibrary1.ReflectTestClass"); 
  51.  
  52.                 string result = (String)method.Invoke(obj,new string[] {"Tom"}); 
  53.                 Console.WriteLine("Invoke Method With Parameter"); 
  54.                 Console.WriteLine("-----------------------"); 
  55.                 Console.WriteLine(result); 
  56.                 Console.WriteLine("-----------------------"); 
  57.                 Console.WriteLine(); 
  58.                 method = typeA.GetMethod("WriteName"); 
  59.                 result = (string)method.Invoke(null,new string[] {"Tom"}); 
  60.                 Console.WriteLine("Invoke Static Method with Parameter"); 
  61.                 Console.WriteLine("-----------------------"); 
  62.                 Console.WriteLine(result); 
  63.                 Console.WriteLine("-----------------------"); 
  64.                 Console.WriteLine(); 
  65.                 method = typeA.GetMethod("WirteNopara"); 
  66.                 Console.WriteLine("Invoke Method with NOParameter"); 
  67.                 result = (string)method.Invoke(obj, null); 
  68.                 Console.WriteLine("-----------------------"); 
  69.                 Console.WriteLine(result); 
  70.                 Console.WriteLine("-----------------------"); 
  71.             } 
  72.  
  73.             catch(FileNotFoundException ex) 
  74.             { 
  75.                 Console.WriteLine(ex.Message); 
  76.             } 
  77.  
  78.             Console.ReadLine(); 
  79.         } 
  80.  
  81.         /// <summary> 
  82.         /// 顯示數(shù)組信息 
  83.         /// </summary> 
  84.         /// <typeparam name="T"></typeparam> 
  85.         /// <param name="os"></param> 
  86.         public static void ShowMessage<T>(T[] array) 
  87.         {  
  88.             foreach(T member in array) 
  89.             { 
  90.                 Console.WriteLine(member.ToString()); 
  91.             } 
  92.  
  93.             Console.WriteLine("-----------------------"); 
  94.             Console.WriteLine(); 
  95.         } 
  96.     } 

篩選返回的成員種類

可以調用Type的GetMembers,GetFields,GetMethods,GetProperties或者GetEvenents方法來查詢一個類型的成員。在調用上面的任何一個方法時,都可以傳遞System.Reflection.BindingFlags枚舉類型的一個實例,使用這個枚舉類型目的是對這些方法返回的成員進行篩選。對于這個枚舉類型中成員的信息可以參考MSDN:http://msdn.microsoft.com/zh-cn/library/system.reflection.bindingflags(v=VS.80).aspx

注意:在返回一個成員集合的所有方法中, 都有一個不獲取任何實參的重載版本。如果不傳遞BindingFlags實參,所有這些方法都返回公共成員,默認設置為BindingFlags.Public|BindingFlags.Instance|BindingFlags.Static. (如果指定Public或NonPublic,那么必須同時指定Instance,否則不返回成員)。

 

原文鏈接:http://www.cnblogs.com/zhili/archive/2012/07/08/AssemblyLoad_and_Reflection.html

【編輯推薦】

 

責任編輯:彭凡 來源: 博客園
相關推薦

2012-02-08 10:12:19

Java反射

2009-02-03 09:42:53

JAVA類JVM指令forName方法

2023-10-17 09:26:44

Java工具

2012-02-08 09:44:52

Java反射

2012-04-05 13:50:38

Java

2013-10-12 13:26:08

設計加載

2011-05-26 15:23:34

JavaReflection

2011-09-27 10:23:24

Java反射機制

2017-05-17 15:28:15

Java反射機制

2011-03-09 09:11:52

java反射機制

2010-08-11 09:40:44

LINQ

2017-03-24 09:44:33

Java反射機制

2011-11-23 14:40:36

程序員

2013-03-14 09:54:54

jQueryJS

2024-09-29 09:02:17

Go語言類型

2025-10-31 02:00:00

2018-01-12 10:25:48

Nginx信號集master

2018-08-06 14:18:09

Linux應用程序技術

2011-04-01 14:50:56

Java的反射機制

2009-06-17 13:57:54

java實例Reflection
點贊
收藏

51CTO技術棧公眾號

一个人www视频在线免费观看| av网站免费大全| 免费电影一区二区三区| 欧美日韩国产中文| 精品无码av无码免费专区| 日韩一级片免费| 日本亚洲最大的色成网站www| 色偷偷噜噜噜亚洲男人| 四虎成人免费视频| 国产精品第一| 五月天激情综合| 中文字幕一区二区三区有限公司 | 欧美精品尤物在线| 国产一区二区三区在线观看| av不卡免费看| 久久视频在线视频| 精品国产无码在线观看| 国产一精品一av一免费爽爽| 精品女厕一区二区三区| 一本—道久久a久久精品蜜桃| 久久久久一区二区| 波多野结衣不卡视频| 欧美亚洲国产日韩| 91精品国产综合久久福利软件| 99视频在线免费播放| 日本a级在线| 91日韩在线专区| 91免费福利视频| 亚洲精品中文字幕乱码三区91| 欧美/亚洲一区| 中文字幕视频一区二区在线有码| 国产污在线观看| 亚洲二区av| 欧美性极品少妇| 99福利在线观看| 青草在线视频| 亚洲乱码国产乱码精品精98午夜 | 日韩人妻一区二区三区 | 精品在线不卡| 亚洲女同志亚洲女同女播放| 美女免费视频一区| 日产精品99久久久久久| 国产毛片aaa| 宅男噜噜噜66一区二区 | 国产亚洲成人av| 综合一区av| 久热精品视频在线观看一区| 国产wwwwxxxx| 日韩精品免费| 日韩中文字幕免费视频| 亚欧精品视频一区二区三区| 精品久久久中文字幕| 亚洲人成人99网站| 91国模少妇一区二区三区| 亚洲精品国产动漫| 日韩精品在线第一页| 日本xxx在线播放| 综合亚洲自拍| 亚洲欧洲日产国产网站| 男人操女人动态图| 欧洲毛片在线视频免费观看| 国产亚洲精品美女久久久久| 日韩毛片无码永久免费看| 教室别恋欧美无删减版| 一本色道久久综合亚洲精品小说| 在线小视频你懂的| 日韩精品首页| www日韩欧美| 99热精品免费| 日韩一级在线| 国产99视频精品免视看7| 羞羞色院91蜜桃| 久久精品国产**网站演员| 国产在线播放不卡| 性欧美18一19性猛交| 成人av网站在线观看免费| 九色综合日本| av在线女优影院| 亚洲欧美综合色| 成人一级生活片| 在线成人av观看| 欧美无砖专区一中文字| 国产毛片久久久久久| 精品国内亚洲2022精品成人| 亚洲欧美色图片| 亚洲色图27p| 精品白丝av| 国产99久久精品一区二区| 国产精品欧美激情在线| 成人深夜在线观看| 秋霞久久久久久一区二区| 毛片av在线| 婷婷开心激情综合| 麻豆一区二区三区视频| 深夜福利一区| 亚洲理论在线a中文字幕| 我要看一级黄色录像| 在线国产日韩| 国产视频福利一区| 天天操天天干天天舔| 欧美激情中文字幕一区二区| 国产美女作爱全过程免费视频| 黑人巨大精品欧美一区二区桃花岛| 欧美日韩电影在线| 三级电影在线看| 91精品国偷自产在线电影| 97久久精品人人澡人人爽缅北| 国产偷人爽久久久久久老妇app| 国产成人小视频| 色就是色欧美| 91福利区在线观看| 777午夜精品免费视频| 久久国产精品无码一级毛片| 无码一区二区三区视频| 国产成人精品免费视频| 成人免费一级视频| 中文字幕一区二区三区乱码在线| 精品国产免费av| 一本色道69色精品综合久久| 日韩在线欧美在线| 波多野结衣黄色网址| 福利一区福利二区| 手机在线视频你懂的| 亚洲伦乱视频| 亚洲免费精彩视频| 国产午夜免费视频| 国产成人亚洲精品狼色在线| 永久久久久久| 91欧美精品| 亚洲色图13p| 国产成人在线观看网站| 东方欧美亚洲色图在线| 国产成人三级视频| 日韩成人在线一区| 中文字幕在线看视频国产欧美在线看完整 | 国产伦理吴梦梦伦理| 国产欧美va欧美不卡在线| 男人日女人逼逼| 精品国产一区二区三区不卡蜜臂| 欧美疯狂做受xxxx高潮| 国产成人精品一区二区无码呦| 国产精品色哟哟网站| 国产一二三四在线视频| 欧洲激情综合| 国产精品影片在线观看| 色的视频在线免费看| 欧美视频一区二区三区四区| 精品人妻一区二区三区蜜桃视频| 日韩精品一区第一页| 欧美连裤袜在线视频| 亚洲淫成人影院| 亚洲免费精彩视频| 国产主播第一页| 中文子幕无线码一区tr| 中日韩av在线播放| 综合一区在线| 国产亚洲欧美一区二区三区| 日韩欧美一中文字暮专区| 日韩av在线影院| 精品国产午夜福利| 国产欧美综合在线观看第十页| 中文字幕天天干| 久久久久美女| 国产精品久久久对白| 国产美女精品写真福利视频| 国产手机视频精品| 姑娘第5集在线观看免费好剧| 国产精品素人一区二区| 五月天开心婷婷| 国产一区亚洲| 免费在线观看一区二区| 成人精品国产| 欧美精品一区二区免费| 日本毛片在线观看| 欧美在线短视频| 午夜精品福利在线视频| 成人免费高清在线| www.欧美日本| 欧美一区在线看| 久久av一区二区三区亚洲| 唐人社导航福利精品| 日韩中文第一页| 亚洲精品喷潮一区二区三区 | 黄网站欧美内射| japanese国产精品| 亚洲自拍偷拍福利| 涩涩视频在线| 久久影视电视剧免费网站清宫辞电视| 亚洲精品久久久久久久久久 | 国产精品扒开腿做爽爽爽视频| 操你啦在线视频| 亚洲欧美福利视频| 99国产精品一区二区三区| 福利二区91精品bt7086| 欧美大片xxxx| 久久综合九色欧美综合狠狠| 中文字幕第22页| 久久中文欧美| 日韩欧美视频免费在线观看| 欧美激情在线免费| 91情侣在线视频| 韩国成人在线| 欧美激情影音先锋| 91看片在线观看| 亚洲国产一区二区三区在线观看| 一区二区日韩视频| 欧美日韩国产一中文字不卡| 青青青在线免费观看| 亚洲国产电影在线观看| 日本黄色录像片| 国产伦精品一区二区三区免费迷| 爱福利视频一区二区| 欧美国产免费| 一区二区视频在线观看| 免费视频一区三区| 国产欧美一区二区三区另类精品 | 日韩精品一区二区三区在线播放 | 国产亚洲日本欧美韩国| 亚洲欧美激情另类| 3d成人h动漫网站入口| 无码人妻久久一区二区三区 | 中文字幕乱码一区二区免费| avtt香蕉久久| 国产999精品久久久久久绿帽| 国产精品久久久毛片| 亚洲一区日韩在线| 大伊香蕉精品视频在线| 永久亚洲成a人片777777| 亚洲高清乱码| 成人vr资源| 欧美久久在线| 欧美激情在线免费| 美日韩精品免费| 精品国产导航| 久久国产精品亚洲va麻豆| 亚洲大奶少妇| 91免费人成网站在线观看18| 日本免费成人| 国产一区玩具在线观看| 四虎国产精品免费久久| 国产精品久久久久久亚洲影视 | 中文字幕高清视频| 91伊人久久大香线蕉| 免费日本黄色网址| 成人99免费视频| 亚洲av成人精品一区二区三区| 国产成人亚洲精品青草天美| 无码人妻一区二区三区一| 国产精品18久久久久久久网站| 午夜福利123| 国产成人在线视频网址| 丰满岳乱妇一区二区| 99精品国产视频| 五月婷婷综合在线观看| 国产亚洲精品资源在线26u| 成人黄色a级片| ...中文天堂在线一区| www.97视频| 亚洲精品乱码久久久久久黑人| 澳门黄色一级片| 亚洲午夜久久久久久久久电影网| 国产精品111| 欧美小视频在线| 亚洲中文字幕无码爆乳av| 欧美三级电影在线看| 国产精品久久欧美久久一区| 日韩欧美激情在线| 亚洲 欧美 精品| 亚洲天堂av高清| 黄色免费在线观看| 久久免费视频观看| 亚洲欧美韩国| 国产又爽又黄的激情精品视频| 亚洲一区二区免费在线观看| 久久av一区二区| 国产精品久久久久久麻豆一区软件 | 国产精品视频男人的天堂| 国产一区2区在线观看| 国产精品9999久久久久仙踪林| 日韩美脚连裤袜丝袜在线| 先锋影音一区二区三区| 国产精品99免费看| 日本在线观看a| 精品一区二区在线观看| 国产精品久久久久久久无码| 欧美激情一区二区| 九九热精品免费视频| 日韩欧美在线视频观看| 国产精品玖玖玖| 日韩精品在线第一页| 免费网站成人| 78m国产成人精品视频| 黄色欧美视频| 国产伦理一区二区三区| 日韩电影免费网址| 成人一区二区免费视频| 免费精品视频在线| 精品国产一区在线| 亚洲品质自拍视频网站| 午夜婷婷在线观看| 日韩精品影音先锋| 北岛玲日韩精品一区二区三区| 久久久久久久久中文字幕| 最新日韩三级| 国产精品久久亚洲7777| 午夜欧美在线| 国产男女无遮挡| 成人性生交大合| 久久99久久99精品免费看小说| 色悠悠久久综合| 成人毛片在线免费观看| 久久久久北条麻妃免费看| 三级成人黄色影院| 国产高清不卡av| 天天做天天爱天天爽综合网| 国产精品-区区久久久狼| 成人黄色av电影| 欧美日韩免费一区二区| 欧美三级蜜桃2在线观看| 九色视频在线播放| 91精品国产成人www| 97品白浆高清久久久久久| 中国 免费 av| 毛片av一区二区三区| 日韩在线免费观看av| 欧美午夜激情小视频| 欧美一级性视频| 欧美丰满老妇厨房牲生活| 日本亚洲视频| 美国av在线播放| 寂寞少妇一区二区三区| 波多野结衣家庭教师在线观看| 色综合久久综合中文综合网| 香蕉国产在线视频| 91精品国产沙发| 高清一区二区三区| 97干在线视频| 成人av在线影院| 日本一区二区三区四区五区| 精品精品欲导航| 久草在线视频网站| 国产伦精品一区二区三毛| 亚洲欧洲午夜| 玖玖爱在线精品视频| 偷窥国产亚洲免费视频| 亚洲av成人无码久久精品老人| 91豆花精品一区| 亚洲激情播播| 韩国中文字幕av| 国产精品入口麻豆原神| 亚洲视频在线观看一区二区| 最近2019中文字幕第三页视频| 国产亚洲精彩久久| 老汉色影院首页| 福利一区二区在线观看| 日韩手机在线观看| 亚洲男人天堂久| 中韩乱幕日产无线码一区| 亚洲国产精品日韩| 国产一区二区精品久久| 免费在线看黄网址| 日韩av网站导航| 性欧美gay| 中文字幕不卡每日更新1区2区| 国内一区二区视频| 亚欧视频在线观看| 国产亚洲精品高潮| 91精品亚洲一区在线观看| 毛片av在线播放| 久久综合色播五月| 在线免费看91| 欧美日韩福利在线观看| 久久a爱视频| 黄色三级视频片| 亚洲精品自拍动漫在线| 少妇一级淫片免费看| 国产精品久久久久久超碰| 欧美xxx在线观看| 国产肉体xxxx裸体784大胆| 欧美日韩一区二区三区视频| free性欧美hd另类精品| 久久久一本精品99久久精品| 免费黄网站欧美| 麻豆亚洲av成人无码久久精品| 国产丝袜一区二区| 在线观看欧美| 黄色一级片播放| 亚洲婷婷在线视频| 免费福利在线视频| 91精品免费视频| 久久国产精品久久w女人spa| 中文字幕观看av| 日韩精品视频三区| 2019中文亚洲字幕| 久久精品免费一区二区| 亚洲精品成a人| 91网页在线观看| 九九九九精品九九九九| 理论片日本一区| 无码人妻av一区二区三区波多野|