Table of Contents

Class Mirror

Namespace
ZapLib.Utility
Assembly
ZapLib.dll

萬用的反射輔助工具

public static class Mirror
Inheritance
Mirror
Inherited Members

Methods

AssignValue<T>(ref T, object, object)

將目標物件的特定成員 key 覆蓋數值 value,如果找不到該成員或該成員唯讀,將不進行任何操作

public static bool AssignValue<T>(ref T target, object key, object value)

Parameters

target T

目標物件

key object

指定成員名稱

value object

指定成員數值

Returns

bool

Type Parameters

T

目標物件類型 T

Assign<T>(ref T, params object[])

物件成員數值合併,將數個物件 objs 由前到後依序將其成員數值覆蓋到目標物件 target 中,成員名稱與型態必須相同才會覆蓋,否則將忽略

public static void Assign<T>(ref T target, params object[] objs)

Parameters

target T

目標物件

objs object[]

數個任意物件

Type Parameters

T

目標物件類型 T

EachMembers<TKey, TVal>(object, Action<TKey, TVal>)

反射指定物件的成員,並將成員名稱轉換為 TKey 型態、成員數值轉換成 TVal 型態,傳遞給回呼 (callback) 委派函數處理,當轉換不過時將回傳該型態的預設值

public static void EachMembers<TKey, TVal>(object obj, Action<TKey, TVal> cb)

Parameters

obj object

要反射的物件

cb Action<TKey, TVal>

回呼 (callback) 委派函數

Type Parameters

TKey

物件成員名稱轉換成這個型態

TVal

物件成員數值轉換成這個型態

GetClasses<T>(bool)

反射全系統公開類別,並取得指定類型或繼承指定類型的類別

public static IEnumerable<Type> GetClasses<T>(bool include_self = false)

Parameters

include_self bool

是否包含指定的類型的類別

Returns

IEnumerable<Type>

迭代器,反覆返回該類別

Type Parameters

T

指定類型

GetClasses<T>(Assembly, bool)

從指定組件中反射公開類別,並取得指定類型或繼承指定類型的類別

public static IEnumerable<Type> GetClasses<T>(Assembly asm, bool include_self = false)

Parameters

asm Assembly

指定組件

include_self bool

是否包含指定的類型的類別

Returns

IEnumerable<Type>

迭代器,反覆返回該類別

Type Parameters

T

指定類型

GetCustomAttributes<T>(PropertyInfo)

從 PropertyInfo 中取得指定類型的 Attributes

public static IEnumerable<T> GetCustomAttributes<T>(PropertyInfo prop)

Parameters

prop PropertyInfo

成員

Returns

IEnumerable<T>

迭代器,反覆返回指定類型的 T

Type Parameters

T

定類型的 Attributes

Members(object)

反射指定物件的成員,並以迭代方式回傳成員的名稱與數值

public static IEnumerable<DictionaryEntry> Members(object obj)

Parameters

obj object

要反射的物件

Returns

IEnumerable<DictionaryEntry>

迭代器,反覆返回 DictionaryEntry,該物件的 Key 與 Value 即為成員的名稱與數值