我正在使用反射从控制器和方法获取授权属性。
因为我需要反复获取这些信息,我想知道缓存它是否更快,或者只是继续使用反射来获取它。
有什么想法吗?
答案 0 :(得分:0)
总的来说,当得到速度时,不建议使用Reflection,但是你必须考虑开发一个真正有效的缓存的时间(线程安全,非常快,它给你当前值而不是旧的不一致值并调试它。
很难说哪种架构能够提供最佳性能,但您可以轻松地编写一些测试,通过一小组简单案例来计算两种不同场景的时间。您可能会发现速度完全相同,或者它显着不同。无论哪种方式,你都有答案。
答案 1 :(得分:0)
这个答案有点晚了但是我最近对项目中的一位有同样的想法,最后使用以下扩展方法进行缓存 GetOrCreate如果你这样做,请记得锁定字典。
相反,您可以使用ImmutableAVLTree
来lock-free strategy最后,有一些有用的实用程序可以使用反射here
它是完整框架的一部分,但如果这是您需要的唯一内容,则可以copy this bit of code。