簡體   English   中英

通過反射獲取對象屬性(實例屬性除外)

[英]Get object properties with reflection except instance properties

我想枚舉使用反射的所有對象屬性,但是我想排除引用對象的屬性(這應該足夠快,因為我正在使用Redis / Booksleve的緩存解決方案)。

目前,我有以下內容,但這將返回所有對象屬性,包括實例成員:

var propertyNameAndValues = member.GetType().GetProperties().Where(m => m.GetGetMethod() != null).ToDictionary(i => i.Name, i => Encoding.UTF8.GetBytes(i.GetGetMethod().Invoke(member, null).ToString()));
var task = conn.Hashes.Set(db, string.Format("members:{0}", member.id), propertyNameAndValues);

使用過載GetProperties在那里你可以指定BindingFlags參數,確保BindingFlags.Static包括但BindingFlags.Instance被排除在外。

例如:

var flags = BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static;
var properties = member.GetType().GetProperties(flags);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM