成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

C#反射機(jī)制詳細(xì)概括

開發(fā) 后端
這里介紹在C#反射機(jī)制的幫助下,類型信息將被加載和查看。這樣就可以通過檢查這個類型以判斷插件是否有效。如果類型通過了檢查,那么插件就可以被添加到主程序的界面中,就可以被用戶操作。

本文向大家介紹C#反射機(jī)制,可能好多人還不了解C#反射機(jī)制,沒有關(guān)系,看完本文你肯定有不少收獲,希望本文能教會你更多東西。

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

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

反射(Reflection)

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

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

System。Reflection。Assembly類描述了.NET的程序集。在.NET中,程序集是配置單元。對于一個典型的Windows程序,程序集被配置為單一的Win32可執(zhí)行文件,并且?guī)в刑囟ǖ母郊有畔ⅲ怪m應(yīng).NET運(yùn)行環(huán)境。程序集也可以配置為Win32的DLL(動態(tài)鏈接庫),同樣需要帶有.NET需要的附加信息。System。Reflection。Assembly類可以在運(yùn)行的時候取得程序集的信息。這些信息包括程序集包含的類型信息。

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

System。Activator類用于創(chuàng)建一個類的實(shí)例。

【編輯推薦】

  1. C#泛型支持簡單描述
  2. C#實(shí)現(xiàn)泛型類簡單分析
  3. C# Singleton設(shè)計模式淺談
  4. C#對接口成員訪問分析
  5. C#實(shí)現(xiàn)插件構(gòu)架淺析
責(zé)任編輯:佚名 來源: 博客園
相關(guān)推薦

2009-09-17 16:53:15

C#數(shù)組

2011-06-08 10:06:32

C#

2009-09-17 17:40:36

C#動態(tài)數(shù)組

2011-07-14 11:08:30

C#繼承

2021-03-15 08:18:23

C#反射模塊

2009-09-18 11:15:52

C#數(shù)組初始化

2009-04-10 09:55:44

C#反射.NET

2009-09-17 16:45:56

C#數(shù)組

2009-09-15 13:59:18

LINQ to Dat

2009-09-23 09:09:22

C#刪除數(shù)組重復(fù)項

2009-09-22 09:31:15

Hibernate主鍵

2009-08-21 08:41:44

C#反射

2009-08-28 13:56:25

C#反射命名空間

2024-03-04 18:49:59

反射C#開發(fā)

2024-04-15 04:00:00

C#反射代碼

2009-08-27 17:14:36

C# Socket

2009-08-10 16:30:56

C# BitmapDa

2009-08-12 15:34:40

C# DBNull

2025-03-06 00:33:09

動態(tài)編程C#

2009-09-18 11:33:37

C#二維數(shù)組初始化
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 激情欧美日韩一区二区 | 人人天天操 | 国产日韩一区二区三区 | 美女黄频 | 欧美亚洲国产日韩 | 日韩欧美亚洲 | 国产真实精品久久二三区 | 欧美a区 | 日本一区高清 | 欧美国产激情二区三区 | 一级国产精品一级国产精品片 | 91av视频 | 黑人一级片视频 | 日韩精品1区2区3区 国产精品国产成人国产三级 | 永久免费av| 亚洲欧洲精品成人久久奇米网 | 一区二区精品电影 | 成人九色 | 欧美亚洲综合久久 | 一区二区久久 | 久久久久久国产免费视网址 | 精品亚洲一区二区三区四区五区高 | 麻豆国产精品777777在线 | 欧美激情在线一区二区三区 | 成人精品 | 精品国产一区二区三区久久久蜜月 | av网站在线播放 | 国产精品美女久久久 | 亚洲欧洲成人av每日更新 | 欧美在线精品一区 | 免费一区 | 国产91久久久久久久免费 | 久久精品国产一区二区三区不卡 | 亚洲成在线观看 | 欧美一级片a | 亚洲精品视频在线看 | 欧美日韩亚洲国产 | 日本在线免费看最新的电影 | 欧美精品在线免费观看 | 一区二区三区视频在线 | 一区二区三区免费观看 |