【问题标题】:Are Properties.Settings cached?Properties.Settings 是否缓存?
【发布时间】:2019-06-27 13:32:24
【问题描述】:

我曾考虑将Properties.Settings 读入字段,然后出于性能原因使用这些字段,因为Properties.Settings uses reflection 但是,也许这些值已被缓存,因此没有意义。

那么,Properties.Settings 是否被缓存了?

【问题讨论】:

  • 反射也顺便缓存了。
  • @DavidG 你有这方面的资料吗?如果是这样,那就是答案。
  • 我不会说这是一个答案,只是一个有趣的观点。不过,我真正的观点是,无论如何缓存这些值可以带来多少性能优势?值得你花时间在上面吗?我通常会向人们推荐这个:ericlippert.com/2012/12/17/performance-rant
  • @DavidG 根据Marc Gravell 在某些情况下“有效的反射缓存可以使一切变得不同。”。
  • 是的,如果您进行大量反思,它会有所帮助。但是,如果您谨慎地调用这些,则根本没有区别,您只是浪费时间担心它。

标签: c# .net wpf winforms


【解决方案1】:
ApplicationSettingsBase.Reload 方法文档的

备注部分提到了缓存。

Reload 方法清除当前缓存的属性值,导致重新加载 这些值在随后被访问时从持久存储中获取。这种方法 执行以下操作:

  • 它通过清除由 PropertyValues 属性表示的集合来清除当前缓存的属性。
  • 它为 Properties 集合的每个成员引发 PropertyChanged 事件。

Reload 与Reset 的不同之处在于前者将加载最后一组保存的应用程序设置值,而后者将加载保存的默认值。

https://docs.microsoft.com/en-us/dotnet/api/system.configuration.applicationsettingsbase.reload?view=netframework-4.8

【讨论】:

    猜你喜欢
    • 2012-09-23
    • 2013-01-08
    • 2013-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多