1

私の 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 から取得されます。

設定ファイルで使用されているオブジェクトは次のとおりです。

ここに画像の説明を入力

これらの変数をこの関数に渡して使用しようとすると、次のようになります。

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");
   }

}

null エラーが発生します。

設定ファイルの値を初期化するにはどうすればよいですか? ある種の XML を入力する必要があると推測していますが、それを生成するための正しい手順がわかりません。これまたは私のnullエラーのその他の理由についての指示をいただければ幸いです

4

1 に答える 1

-2

この回答でわかるように、あなたが求めていることを行う方法を示します。

組み込みのシリアル化ではありませんが、私の例でクラスを定義して同じ結果を得ることができます。

別の例を次に示します。

そしてもう一つ

于 2012-06-25T13:13:06.390 に答える