在设置文件中初始化自定义类

时间:2012-06-25 05:27:47

标签: c# serialization devexpress settings dockpanel

在我的WinForms C#应用程序中,我试图在设置文件中保存自定义类。这是我目前的代码:

public class PanelSaver : ApplicationSettingsBase
{
  private DockingStyle ds;
  System.Drawing.Point location;
  System.Drawing.Size panelSize;

  [UserScopedSetting()]
  [SettingsSerializeAs(System.Configuration.SettingsSerializeAs.Xml)]
  public DockingStyle Style
  {
     get { return ds; }
     set { ds = value; }
  }
  public System.Drawing.Point Location
  {
     get { return location; }
     set { location = value; }
  }
  public System.Drawing.Size Size
  {
     get { return panelSize; }
     set { panelSize = value; }
  }
}

DockingStyle变量来自DevExpress Dockpanels。

以下是设置文件中使用的对象:

enter image description here

当我尝试使用这些变量时,将它们传递给这个函数:

private void DockPanelSave(PanelSaver savingPanel, DockPanel realDockingPanel)//
{
   try
   {
      savingPanel.Location = realDockingPanel.Location;
      savingPanel.Size = realDockingPanel.Size;
      savingPanel.Style = realDockingPanel.Dock;
   }
   catch (Exception e)
   {
      MessageBox.Show(e.Message);
      throw new NotSupportedException("You may have added a new panel, and may not have added a corresponding " +
      "settings variable to hold it in the Settings.settings file");
   }

}

我收到一个空错误。

我应该如何初始化设置文件中的值?我猜我需要输入某种XML但是我不知道生成它的正确步骤。关于我的空错误的这个或其他原因的任何指示将不胜感激

1 个答案:

答案 0 :(得分:-2)

你可以通过this answer看到我展示了如何做你想要的。

它不是内置序列化,但您可以通过我的示例定义您的类并获得相同的结果。

Here's another example

and another