C 中應用定製特性來進行執行期判斷

2021-07-29 02:57:53 字數 702 閱讀 2050

定製特性本質上還是乙個類,只不過clr規定定製特性必須繼承自attribute類

定製特性可以應用在類,屬性,方法等物件(幾乎是元資料中的所有成員)上面

當應用定製特性的時候,是生成了特性的乙個例項(按照應用時在特性後面的括號內戴上的命名引數和定位引數),並且將應用的物件和特性關聯在一起,這個是體現在檔案的元資料中的(編譯器會將特性的例項序列化到元資料中)

下面是乙個例子,首先定義乙個特性類用來表示文字的長度限制,然後定義乙個實體類,並且在實體類的屬性上應用該特性,最後在執行的時候動態檢測實體類例項的所有應用的特性,並且根據特性來檢驗實體的成員的長度是否超過特性定義的長度。

//特性類

[attributeusage(attributetargets.all, allowmultiple=true, inherited=true)]

public class inputcheckentityattribute : attribute

set }}

//實體類

public class entitytocheck

set", maxlen)));}}

}}}}

//測試入口函式

public partial class form1 : form

private void buttonval_click(object sender, eventargs e)

}

C 應用系列 利用裝飾器模式進行執行時間測試

在平常做實驗時,經常會遇到需要測試某個函式或個模組的執行時長,基本上每次都是在模組前後新增測時間的函式,然後輸出檢視,這樣的工作相當繁瑣,然而每次測試還是這樣做的。今天上網看到aop相關,發現可以用aop新增測時間功能。又看到了 模式和裝飾器模式,發現應用裝飾器模式似乎可以簡單實現。class vb...

C 中來應用Hook

鉤子 hook 是windows 訊息處理機制的乙個平台 應用程式可以在上面設定子程以監視指定視窗的某種訊息,而且所監視的視窗可以是其他程序所建立的。當訊息到達後,在目標視窗處理函式之前處理它。鉤子機制允許應用程式截獲處理 window 訊息或特定事件。關於hook的詳細介紹,在微軟的msdn中有,...

C 中來應用Hook

鉤子 hook 是windows訊息處理機制的乙個平台,應用程式可以在上面設定子程以監視指定視窗的某種訊息,而且所監視的視窗可以是其他程序所建立的。當訊息到達後,在目標視窗處理函式之前處理它。鉤子機制允許應用程式截獲處理window訊息或特定事件。關於hook的詳細介紹,在微軟的msdn中有,htt...