您好,我对反射非常熟悉,我已经通过了大量的示例,我知道它是如何工作的以及我们可以将它用于什么目的。但是我没有得到任何缓存反射的例子,我也不知道这是什么意思。不知何故,我必须在我正在做的项目中使用反射缓存。
因此,如果有人能简要解释这个概念并给出一些例子,我将不胜感激,也将不胜感激现有例子的链接。并且还请描述属性的反射以及它的缓存。提前致谢。
问候乌梅尔
您好,我对反射非常熟悉,我已经通过了大量的示例,我知道它是如何工作的以及我们可以将它用于什么目的。但是我没有得到任何缓存反射的例子,我也不知道这是什么意思。不知何故,我必须在我正在做的项目中使用反射缓存。
因此,如果有人能简要解释这个概念并给出一些例子,我将不胜感激,也将不胜感激现有例子的链接。并且还请描述属性的反射以及它的缓存。提前致谢。
问候乌梅尔
你会像缓存其他任何东西一样缓存它:
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);
我建议不要缓存反射(呵呵),因为它(当然)是由运行时完成的。如果您打算减少查找时间和动态调用开销
不管你做什么:不要过早优化使事情复杂化。