• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    從NUnit中理解.NET自定義屬性的應用

    發布: 2009-4-10 09:44 | 作者: 不詳 | 來源: 測試時代采編 | 查看: 40次 | 進入軟件測試論壇討論

    領測軟件測試網

    摘要:

            .net的自定義屬性可以實現程序集元數據擴展,并能為框架設計和實現提供新的思路和解決辦法。NUnit即是一個很好的例子。

    1.屬性概述

           .NET的元數據體系是.NET Framework的亮點之一。利用元數據可以對程序集、模塊、類型、方法、成員等進行某種特性描述,而這些描述將作為元數據被編譯到程序集中,并通過.NET運行環境為其調用者所使用。這也即元數據擴展。

            屬性(Attribute)的定義和使用是元數據擴展的主要內容。這包括對.NET標準屬性的使用和自定義屬性。

            注:“屬性”是漢化MSDN對本文所討論的概念—Attribute的翻譯,我也習慣這么說。這好像很容易和OO中的“屬性”混淆。有些同類討論中,將此翻譯為“標簽”、“標記”,請注意區分。

            也許開發者對屬性還感覺比較陌生,對其如何發揮作用也沒有什么感性認識。但其實在日常的開發中,.NET開發者來已經在大量使用.NET的標準屬性。如:

            當要引用某個傳統動態連接庫中的函數時,我們常用到DllImportAttribute標準屬性來注釋某個函數的原型:

    [DllImport(“user32.dll”)]

    public static extern intMessageBoxA(intp,stringm,stringh,intt);

    //…

            又比如,在編寫Web Service時會使用到WebServiceAttribute和WebMethodAttribute屬性。[WebService]和[WebMethod]會在生成WSDL時發揮作用,為我們生成相應的Web Service描述,下面的代碼片段開發者是多么的熟悉:

    [WebMethod]

    public stringHelloWorld()

    //…

            這些屬性直接對程序集中的類型或類型成員進行注釋,并且這樣的注釋可以影響相應程序集的編譯、邏輯、運行等。.NET Framework帶有很多標準的屬性,并在MSDN中有詳細的文檔。

    2.自定義屬性

            屬性也可以自定義,即自行開發屬性,對屬性進行某種格式的定義,并利用屬性來影響開發者自己開發的程序集。這也是.NET元數據擴展最直接的應用了。自定義的屬性在編譯時作為元數據被編譯到程序集中,在運行時可以利用反射機制(Reflection)被讀取。

            .NET中的屬性是以一個類的形式來定義的。幾乎所有的屬性都繼承自System.Attribute,開發者自定義屬性也需首先繼承自該抽象類。

    圖1:System.Attribute是所有屬性的基類

            自定義屬性可以用于對程序集中的元素進行標記和描述,并被編譯到.NET程序集中,成為其元數據的一部分。而從屬性和屬性值的讀取就是對.NET程序集元數據的讀取,這會用到反射機制。具體如何編寫自定義屬性和如何讀取屬性的例子在MSDN中有很多,不再冗述了。

    110593_200904100945551OCFj

    110593_200904100945551OCFj

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/

    TAG: net NET Net nunit NUnit Nunit NUNIT 定義 應用 屬性


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>