什么时候我真的应该调用Properties.Settings.Default的Reload方法?每次我想从持久存储中访问属性的时候?真的有必要吗?先谢谢你。
Reload
p5fdfcr11#
ApplicationSettingsBase.Reload的documentation声明:刷新持久性存储中的应用程序设置属性值。因此,是的,无论何时您想要从持久性存储 * 访问属性 *,都应该调用它。您 * 没有 * 问的是:每次需要值时,是否都需要从永久存储中加载设置?这个问题的答案是 no。该值将缓存在应用程序设置对象中,因此如果您只需要缓存的值,则不需要重新加载。
ApplicationSettingsBase.Reload
nqwrtyyt2#
对我来说,真实的的答案是 * 我根本想不出一个理由来调用它 *。我来告诉你为什么:有两种类型的设置:用户设置和应用程序设置。用户设置是基于每个用户进行更改的,并且很可能是通过属于应用程序本身的UI进行更改的。如果您在应用程序中更改了设置,它已经 * 知道 * 它们已经被更改了-无需重新加载。应用程序设置在应用程序安装后不应该更改。应该如何更改?只有管理员才能访问程序文件夹。在用户空间(服务)之外运行的应用程序没有GUI,也没有充分的理由使用服务的用户设置。通常,您将更改配置文件,然后重新启动服务。这些设置在应用程序启动时加载一次。每次访问设置之前,您是否应该重新读取它们?不,原因如上所述。
um6iljoc3#
以下是何时使用Reload()方法的示例:我已经为这些属性设置构建了一个编辑器。它是一个在对话框窗体上带有几个按钮的propertygrid控件。当用户单击以调用该编辑器时,来自Properties.Settings.Default的键/值将显示在propertygrid中。现在,用户可以更改许多属性,但如果他们决定不保存这些更改,设置必须重新加载,因为他们现在是无效的!这时我用途:
((ApplicationSettingsBase)propertyGrid.SelectedObject).Reload();
3条答案
按热度按时间p5fdfcr11#
ApplicationSettingsBase.Reload
的documentation声明:刷新持久性存储中的应用程序设置属性值。
因此,是的,无论何时您想要从持久性存储 * 访问属性 *,都应该调用它。您 * 没有 * 问的是:
每次需要值时,是否都需要从永久存储中加载设置?
这个问题的答案是 no。该值将缓存在应用程序设置对象中,因此如果您只需要缓存的值,则不需要重新加载。
nqwrtyyt2#
对我来说,真实的的答案是 * 我根本想不出一个理由来调用它 *。我来告诉你为什么:
有两种类型的设置:用户设置和应用程序设置。用户设置是基于每个用户进行更改的,并且很可能是通过属于应用程序本身的UI进行更改的。如果您在应用程序中更改了设置,它已经 * 知道 * 它们已经被更改了-无需重新加载。
应用程序设置在应用程序安装后不应该更改。应该如何更改?只有管理员才能访问程序文件夹。
在用户空间(服务)之外运行的应用程序没有GUI,也没有充分的理由使用服务的用户设置。通常,您将更改配置文件,然后重新启动服务。
这些设置在应用程序启动时加载一次。每次访问设置之前,您是否应该重新读取它们?不,原因如上所述。
um6iljoc3#
以下是何时使用Reload()方法的示例:
我已经为这些属性设置构建了一个编辑器。它是一个在对话框窗体上带有几个按钮的propertygrid控件。
当用户单击以调用该编辑器时,来自Properties.Settings.Default的键/值将显示在propertygrid中。
现在,用户可以更改许多属性,但如果他们决定不保存这些更改,设置必须重新加载,因为他们现在是无效的!
这时我用途: