C# 如何正确使用属性。设置?

C# 如何正确使用属性。设置?,c#,winforms,propertygrid,system.componentmodel,properties.settings,C#,Winforms,Propertygrid,System.componentmodel,Properties.settings,我正在使用Visual Studio 2010,其中有一个名为Utilities的项目,其中包含我希望从解决方案中的其他项目访问的设置.settings文件 在另一个项目中,我想让用户使用PropertyGrid管理Windows窗体中的设置。我还想使用System.ComponentModel设置对其进行自定义。我尝试在settings.Designer.cs文件中应用ComponentModel设置,例如DescriptionAttribute,该文件有效,但正如文件注释中所述,重新生成时对

我正在使用Visual Studio 2010,其中有一个名为Utilities的项目,其中包含我希望从解决方案中的其他项目访问的
设置.settings
文件

在另一个项目中,我想让用户使用
PropertyGrid
管理Windows窗体中的设置。我还想使用
System.ComponentModel
设置对其进行自定义。我尝试在
settings.Designer.cs
文件中应用
ComponentModel
设置,例如
DescriptionAttribute
,该文件有效,但正如文件注释中所述,重新生成时对该文件所做的更改

因此,我的问题如下:

  • 如何从另一个项目访问
    属性.设置
  • 如何在不更改
    设置.Designer.cs
    文件的情况下自定义
    属性网格
  • 如前所述,我让用户从表单管理设置。但是,我希望在用户按下“取消”按钮时恢复这些值。我该怎么做
  • 将设置设计器中的访问修饰符设置为公共(默认为内部)

  • 我将为您的设置使用包装器类(只是许多属性修饰的属性,get/set指向原始设置)。此代码可以从Settings.Designer.cs文件自动生成

  • 将以前的设置保存到变量中,例如通过序列化(二进制或xml)。然后,您可以通过将属性设置为保存的值来恢复它


  • 我希望我不需要保存以前的设置。毕竟,没有进行任何更改,因为用户正在按Cancel。我将创建一个包装器类来处理这个问题。谢谢你的回复!您可以采取相反的方法,即用户将只编辑一份副本,并且只有在用户单击“确定”或类似按钮提交时,您才会将此副本分配给原始设置。