你好那裏 我很熟悉反射,我經歷了大量的例子,我知道它是如何工作的,以及我們可以使用它的目的。但是我沒有得到任何緩存思考的例子,我也不知道它是什麼意思。不知何故,我必須在我正在做的項目中使用緩存反射。如何在C中緩存反射#
因此,如果有人能夠簡要地解釋這個概念以及給出一些例子,我將不得不承認,現有例子的鏈接也將被讚賞。並且請描述屬性的反映以及它的緩存。提前致謝。
問候 Umair
你好那裏 我很熟悉反射,我經歷了大量的例子,我知道它是如何工作的,以及我們可以使用它的目的。但是我沒有得到任何緩存思考的例子,我也不知道它是什麼意思。不知何故,我必須在我正在做的項目中使用緩存反射。如何在C中緩存反射#
因此,如果有人能夠簡要地解釋這個概念以及給出一些例子,我將不得不承認,現有例子的鏈接也將被讚賞。並且請描述屬性的反映以及它的緩存。提前致謝。
問候 Umair
,就像您您還有什麼緩存它:
var cache = new Dictionary<Type, IEnumerable<Attribute>>();
// obj is some object
var type = obj.GetType();
var attributes = type.GetCustomAttributes(typeof(MyAttribute), true);
cache.Add(type, attributes);
我建議不緩存反射(呵呵),因爲它是由運行時完成(當然)。如果你的意思,以減少查找時間,或許動態調用開銷
無論你做什麼:不要通過過早優化來使事情複雜化。
反射不會過度緩存。如果你做了很多元編程(特別是在庫開發中很常見),有效的反射緩存可以使所有的差異。哦,'Expression'沒有比'MethodInfo'更優化的 - 只有當你編譯它成爲一個*強類型的委託纔會變得有用。 – 2011-04-14 20:51:20
你不知道它是什麼,你不知道爲什麼,但仍你_have to_緩存的東西嗎? – 2011-04-14 20:37:01
此主題將幫助您:http://stackoverflow.com/questions/1204748/cache-reflection-results-class-properties – 2011-04-14 20:48:11
另請參閱:http://stackoverflow.com/q/5668569/23354 – 2011-04-14 20:49:59