Лучший способ сделать упорство в C Sharp? - PullRequest
0 голосов
/ 12 января 2011

У меня есть небольшое количество атрибутов GUI, которые мне нужно сохранить в моем приложении. Атрибут прост (размер окна, цвет окна, ext ...) и их нужно хранить в файле (может быть XML или двоичный файл).

Я не уверен, что знаю, какой самый лучший и лучший способ написать код? Это простой XML или сериализация?

Есть ли какой-нибудь пример?

Спасибо.

Ответы [ 6 ]

2 голосов
/ 12 января 2011

Это мой предпочтительный способ хранения настроек приложения, надеюсь, он поможет

public class Settings
{
    public int WindowWidth { get; set; }

    public int WindowHeight { get; set; }

    public int FullscreenAsDefault { get; set; }
}

, тогда в зависимости от того, какой основной класс применим для типа приложения:

    public Settings Settings { get; set; }

    public void OnOpen()
    {
        if ( !File.Exists( "Settings.xml" ) )
        {
            // init settings
            this.Settings = new Settings()
            {
                FullscreenAsDefault = false,
                WindowHeight = 500,
                WindowWidth = 700
            };
        }
        else
        {
            // load settings
            XmlSerializer xmlSerializer = new XmlSerializer( typeof( Settings ) );
            Settings = xmlSerializer.Deserialize( new FileStream( "Settings.xml", FileMode.Open ) ) as Settings;
        }
    }

    public void OnClose()
    {
        // save settings
        XmlSerializer xmlSerializer = new XmlSerializer( typeof( Settings ) );
        xmlSerializer.Serialize( new FileStream( "Settings.xml", FileMode.Create ), this.Settings );
    }
2 голосов
/ 12 января 2011

Сохраните значение в файле web.config. Вот пример:

<appSettings>
  <add key="size" value="100" />

Редактировать: поскольку это выглядит как приложение для Windows, можно использовать файл App.config.

2 голосов
/ 12 января 2011

Я бы рекомендовал использовать IsolatedStorage для хранения настроек времени выполнения приложения:

IsolatedStorageSettings appSettings= IsolatedStorageSettings.ApplicationSettings;
appSettings.Add(<Control.PropertyName>, <Value>);
1 голос
/ 12 января 2011

Я бы порекомендовал XML, потому что он «удобочитаем для человека», и его можно манипулировать / просматривать с помощью обычных инструментов.

Действительно простой способ - использовать DataContractSerializer .Ссылка показывает, как определить сущность для сериализации и как ее можно легко сериализовать.Существует также ISerialiazable и XmlSerializer и т. Д., Но зачем беспокоиться, когда DCS так прост?: -)

1 голос
/ 12 января 2011

Если они хранятся в виде свойств в классе, например Settings, вы можете сериализовать это на диск (двоичный файл или xml по вашему выбору).

Десериализовать этот файл, чтобы получить объект Settingsназад, когда приложение запускается.Если файл не существует, создайте новый объект Settings и сериализуйте значения по умолчанию.

0 голосов
/ 12 января 2011

Вы можете использовать простые старые файлы INI для хранения нечувствительных значений. Вы можете использовать Nini (http://nini.sourceforge.net/) для чтения и записи в файлы INI. .NET Framework не предоставляет встроенных библиотек для обработки файлов INI.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...