2012-06-25 1 views
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.

Здесь объекты используются в настройках файла:

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, но я не знаю правильных шагов для его создания. Любые указания по тем или иным причинам для моей нулевой ошибки будут оценены

ответ

-2

Вы можете видеть по this answer. Я показываю, как делать то, что вы просите.

Это не встроенная сериализация, но вы можете определить свой класс по моему примеру и получить тот же результат.

Here's another example,

and another

Смежные вопросы