• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            反射的特性是經(jīng)常會(huì)使用到的

            【 某網(wǎng)友討論道: 】
            : RT,反射的特性發(fā)現(xiàn)很少用啊



            恰恰相反,有些反射的特性是經(jīng)常會(huì)被使用到的。

            反射總體上分成兩大特性,一是自省,二是發(fā)射;

            自省的能力極為重要,而且?guī)缀鯐?huì)天天用到,很少見(jiàn)到過(guò)哪個(gè).net應(yīng)用中不使用attribute的,而attribute特性就是metadata通過(guò)在自省能力支撐下實(shí)現(xiàn)的;當(dāng)然自省不單單是attribute特性的運(yùn)用,只要是在運(yùn)行時(shí)動(dòng)態(tài)檢視程序自身的特性都要由反射的自省能力來(lái)支持,比如Visual Studio的IDE(這個(gè)集成開(kāi)發(fā)環(huán)境本身就是.net應(yīng)用的好案例)對(duì)于.net組件的自動(dòng)探測(cè)功能;同時(shí),自省的能力也是基于虛擬機(jī)平臺(tái)的語(yǔ)言,比如c#和java,區(qū)別于傳統(tǒng)語(yǔ)言比如c和c++的重要特性之一,這提供了程序設(shè)計(jì)開(kāi)發(fā)更為便利和安全的運(yùn)行時(shí)環(huán)境;相對(duì)而言,在c++(當(dāng)然是native而不是managed)的環(huán)境下,除了RTTI極為單薄的運(yùn)行時(shí)自省,也就是QT這個(gè)庫(kù)通過(guò)meta-object system部分模擬了自省的特性;

            反射的另外一個(gè)重要特性就是發(fā)射,它讓“程序可以寫(xiě)程序”了,簡(jiǎn)要的說(shuō)就是在運(yùn)行時(shí)動(dòng)態(tài)生成MSIL并加載運(yùn)行以及持久化動(dòng)態(tài)生成的MSIL的能力;由這個(gè)特性的支持,讓原先一些程序設(shè)計(jì)和開(kāi)發(fā)領(lǐng)域相對(duì)困難和繁瑣的工作,比如元編程meta programming,比如動(dòng)態(tài)代理dynamic proxy,比如AOP中的基礎(chǔ)設(shè)施weaver的實(shí)現(xiàn),變得可能或相對(duì)易于實(shí)現(xiàn);反射的特性,也是基于虛擬機(jī)平臺(tái)CLR的支持,以metadata為基礎(chǔ)來(lái)實(shí)現(xiàn)的,所以這也是虛擬機(jī)平臺(tái)語(yǔ)言的特有優(yōu)勢(shì),而在傳統(tǒng)語(yǔ)言平臺(tái)上,這是難以實(shí)現(xiàn)的;比如關(guān)于meta programming,c++就是通過(guò)模板特性實(shí)現(xiàn)的編譯期meta programming,這與虛擬機(jī)平臺(tái)上實(shí)現(xiàn)的運(yùn)行時(shí)meta programming還是有比較大的差距(比如前者如何保證生成的代碼的type-safe);

            以上這兩個(gè)特性,自省和發(fā)射,都有個(gè)共同點(diǎn),他們都是圍繞著metadata機(jī)制,并在虛擬機(jī)平臺(tái)運(yùn)行時(shí)環(huán)境CLR支持下實(shí)現(xiàn)的,前者是運(yùn)行時(shí)檢視相關(guān)的metadata,后者是運(yùn)行時(shí)動(dòng)態(tài)生成相關(guān)的metadata和MSIL;從這點(diǎn)也就可以看出,要想深入理解這些特性,就需要研究metadata和MSIL的實(shí)現(xiàn),以及虛擬機(jī)運(yùn)行時(shí)環(huán)境的實(shí)現(xiàn)(在java平臺(tái)上,就是bytecode和JVM);

            所以,反射,可能是虛擬機(jī)平臺(tái)所提供的相對(duì)最為強(qiáng)勁,最為復(fù)雜,和平臺(tái)運(yùn)行時(shí)本身關(guān)系最密切,也是區(qū)別于傳統(tǒng)語(yǔ)言和運(yùn)行時(shí)最鮮明的特性。

            posted on 2011-02-12 17:21 flagman 閱讀(2134) 評(píng)論(1)  編輯 收藏 引用 所屬分類(lèi): .net/CLRC#

            評(píng)論

            # re: 反射的特性是經(jīng)常會(huì)使用到的 2011-02-12 19:25 gbb21

            好!  回復(fù)  更多評(píng)論   

            <2025年5月>
            27282930123
            45678910
            11121314151617
            18192021222324
            25262728293031
            1234567

            導(dǎo)航

            統(tǒng)計(jì)

            常用鏈接

            留言簿(1)

            隨筆分類(lèi)

            隨筆檔案

            搜索

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            99精品国产免费久久久久久下载| 久久亚洲欧美国产精品| 91久久精品国产91性色也| 久久电影网2021| 亚洲AⅤ优女AV综合久久久| 人妻无码αv中文字幕久久琪琪布| 伊人色综合久久天天人手人婷| 国产一级持黄大片99久久| 色偷偷91久久综合噜噜噜噜| 国产∨亚洲V天堂无码久久久| 久久国产精品偷99| 国产成人精品免费久久久久| 久久久久亚洲av成人无码电影| 久久国产免费直播| 品成人欧美大片久久国产欧美| 亚洲AV无码1区2区久久| 欧美激情精品久久久久久久九九九| 久久影院综合精品| 人妻少妇精品久久| 国产精品无码久久综合网| 久久夜色精品国产欧美乱| 亚洲一区精品伊人久久伊人| av午夜福利一片免费看久久| 人妻无码精品久久亚瑟影视 | 久久久久久久综合综合狠狠| 久久久久亚洲av无码专区喷水 | 粉嫩小泬无遮挡久久久久久| 久久无码专区国产精品发布 | 免费久久人人爽人人爽av| 久久精品国产亚洲AV香蕉| 亚洲第一极品精品无码久久| 亚洲国产成人精品女人久久久| 久久人人爽人人爽AV片| 国产福利电影一区二区三区久久久久成人精品综合 | 国产精品免费福利久久| 久久精品国产久精国产果冻传媒 | 精品久久久久久国产潘金莲| 久久精品国产亚洲AV无码偷窥| 久久久久亚洲AV无码麻豆| 精品久久8x国产免费观看| 久久久久女人精品毛片|