1.自定義特性允許吧自定義元資料與元素關聯起來。這些元資料是在編譯過程中建立的,並嵌入到程式集中。反射是乙個普通術語,他描述了了在執行過程中檢查和處理程式元素的功能。
反射可以完成以下任務:
列舉型別的成員
例項化新物件
執行物件的成員
查詢型別的資訊
查詢程式集的資訊
檢查應用於某種型別的自定義特性
建立和編譯新的程式集
2.如何使用自定義特性和反射
編寫自定義的特性:
usingsystem;
using
system.collections.generic;
using
system.linq;
using
system.text;
using
system.threading.tasks;
namespace
myattributetest
public
string
myname}}
}
attributeusage特性是特性類的乙個特徵,用於標示自定義特性可以應用到哪些型別的程式元素上。編寫要使用自定義特性的類:
usingsystem;
using
system.collections.generic;
using
system.linq;
using
system.text;
using
system.threading.tasks;
namespace
myattributetest
}
[name("lihua")]將nameattribute應用到了student類,student類就有了值為lihua的特性。通過反射可以獲取這一值。獲取student的特性
usingsystem;
using
system.collections.generic;
using
system.linq;
using
system.reflection;
using
system.text;
using
system.threading.tasks;
namespace
myattributetest
else
}console.readline();}}
}
使用:例如編寫乙個軟體更新資訊的自定義特性,在有更新的類中新增此特性,賦予相關引數如更新日期和時間,就可以通過反射拿到類的該特性,展示更新資訊。
C 使用反射訪問特性
ms註解 如果沒有檢索自定義特性的資訊和對其進行操作的方法,則定義自定義特性並將其放置在源 中就沒有意義。使用反射,可檢索用自定義特性定義的資訊。主要方法是getcustomattributes,它返回物件陣列,這些物件在執行時等效於源 特性。此方法具有多個過載版本 例項 multiuse attr...
C 反射,特性結合使用
using system using system.reflection using system.collections.generic using system.linq using system.text using system.threading.tasks model dbtablena...
反射與特性
反射 程式在執行時,可以檢視其它程式集或其本身的元資料。乙個執行的程式檢視本身的元資料或者其他程式集的元資料的行為叫做反射。myclass.cs class myclass 定義乙個用來反射查詢的元資料 public void test program.cs static void main str...