缓存反射信息

时间:2014-11-28 07:35:32

标签: c# performance dictionary reflection

什么会更快,通过反思访问MethodInfo

var info = instance.GetType().GetMethod(methodName, 
System.Reflection.BindingFlags.Static | 
System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.Public | 
System.Reflection.BindingFlags.NonPublic);

每次我需要调用一个方法,或者我应该将MethodInfo存储在Dictionary<..., MethodInfo>中,而不是通过字典的键访问方法信息?

谢谢!

1 个答案:

答案 0 :(得分:0)

缓存反射信息总是更好,因为当您通过内置API检索它们时,它会锁定一个全局字典以提供唯一的实例。对于它们的高使用率+多线程,这可能会很糟糕。预缓存可以提供帮助。