亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C#的反射機制是什么

發布時間:2021-07-16 11:01:42 來源:億速云 閱讀:188 作者:chen 欄目:編程語言

本篇內容介紹了“C#的反射機制是什么”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

屬性定制是.NET提供的一個非常棒的新特性之一,屬性對于所有的編程語言都是一種通用的結構。舉個例子,一個函數用于標識可訪問權限的 public,private,或者protect標志就是這個函數的一個屬性。屬性定制之所以如此讓人興奮,那是因為編程人員將不再只能從語言本身提供的有限的屬性集中選擇。一個定制的屬性其實也是一個類,它從System。Attribute繼承,它的代碼被允許是自我描述的。屬性定制可以應用于絕大多數結構中,包括C#里面的類,方法,事件,域和屬性等等。示例代碼片斷定義了兩個定制的屬性:PlugDisplayNameAttribute和 PlugDescriptionAttribute,所有的插件內部的類必須支持這兩個屬性。列表二是用于定義 PlugDisplayNameAttribute的類。這個屬性用于顯示插件節點的內容。在程序運行的時候,主程序將可以利用反射(reflection)來取得屬性值。

主程序必須能夠加載插件,然后和這些插件進行通信,這樣才能實現我們的設計。所有這些的實現可以有很多不同的方法,僅取決于開發者選擇的語言和平臺。如果選擇的是C#和.NET,那么反射機制可以用來加載插件,并且其接口和抽象類可以用于和插件通信。

反射(Reflection)

在一個插件定義好之后,下一步要做的就是查看主程序是怎么加載插件的。為了實現這個目標,主程序使用了C#反射機制。反射是.NET中用于運行時查看類型信息的。在C#反射機制的幫助下,類型信息將被加載和查看。這樣就可以通過檢查這個類型以判斷插件是否有效。如果類型通過了檢查,那么插件就可以被添加到主程序的界面中,就可以被用戶操作。

示例程序使用了.NET框架的三個內置類來使用反射:System。Reflection。Assembly,System。Type,和System。Activator。

System。Reflection。Assembly類描述了.NET的程序集。在.NET中,程序集是配置單元。對于一個典型的Windows程序,程序集被配置為單一的Win32可執行文件,并且帶有特定的附加信息,使之適應.NET運行環境。程序集也可以配置為Win32的DLL(動態鏈接庫),同樣需要帶有.NET需要的附加信息。System。Reflection。Assembly類可以在運行的時候取得程序集的信息。這些信息包括程序集包含的類型信息。

System。Type類描述了類型定義。一個類型聲明可以是一個類,接口,數組,結構體,或者枚舉。在加載了一個類之后,System。Type類可以被用于枚舉該類支持的方法,屬性,事件和接口。

System。Activator類用于創建一個類的實例。

“C#的反射機制是什么”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

盘山县| 营口市| 兴国县| 永平县| 巫山县| 彝良县| 高青县| 修水县| 永昌县| 容城县| 延长县| 云和县| 富源县| 新河县| 商丘市| 沙湾县| 睢宁县| 临高县| 彩票| 德安县| 九寨沟县| 轮台县| 青岛市| 南投县| 平顺县| 潢川县| 衡东县| 砚山县| 简阳市| 蕉岭县| 子洲县| 仲巴县| 万州区| 崇义县| 侯马市| 临城县| 大方县| 浮梁县| 陵水| 四会市| 江孜县|