C# 将保存用户特定设置的实现放在何处?

C# 将保存用户特定设置的实现放在何处?,c#,winforms,implementation,C#,Winforms,Implementation,我有一个网格,当用户关闭表单时,我想为登录的用户保存一些设置。我已经有了两种实现方法,但我想知道在哪里实现此功能: 我应该用这两种方法创建一个静态实用程序类吗 我是否要创建一个新类,并将其命名为UserSettingsManager 现在我有两种方法,但我可以想象未来我需要更多的方法。我该怎么办 编辑: 我已经看到了一些答案(thnx的答案),但是你能说一下为什么你会选择这个选项吗 我会选择用户设置管理器,听起来很合理 除非绝对需要,否则避免使用静态类,因为此类类比普通类更不容易测试/模拟/

我有一个网格,当用户关闭表单时,我想为登录的用户保存一些设置。我已经有了两种实现方法,但我想知道在哪里实现此功能:

  • 我应该用这两种方法创建一个静态实用程序类吗
  • 我是否要创建一个新类,并将其命名为UserSettingsManager
现在我有两种方法,但我可以想象未来我需要更多的方法。我该怎么办

编辑:
我已经看到了一些答案(thnx的答案),但是你能说一下为什么你会选择这个选项吗

我会选择
用户设置管理器
,听起来很合理


除非绝对需要,否则避免使用静态类,因为此类类比普通类更不容易测试/模拟/注入。

我会选择第二种方法,因为静态类很难模拟。

因为此功能所需的状态在当前Windows主体对象中已经可用,带有静态函数的静态类就可以了。

只需做你能想到的最简单的事情。如果静态实用程序类使用最少的代码,那么就使用它

这个应用程序看起来很简单,应该没问题。有时,在以某种方式编码它并使用这些方法几次之后,您会突然发现它有一个更好的位置


如果将来您有其他保存设置的方法(例如,不同的文件格式或web服务),那么您可以开始考虑对其进行重构。并且总是以使事情更简单为目标进行重构

Windows提供了具有正确设置权限的文件夹来存储用户特定信息

使用
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)
获取相应的路径

将其封装在类中,如
UserSettingsManager
。。。在这种情况下,请避免使用
静态
,因为它们是依赖于系统且可变的

一些参考资料:


你的最后一句话有点太笼统了。如果静态类只包含独立于系统的不可变状态,或者根本不包含状态,那么静态类就非常好。当然,这里的状态既依赖于系统又是可变的,所以在这里避免它们是正确的选择。抱歉,在没有注意到“用户特定”部分的情况下发布了答案。已排队等待删除…:P