Как логика хранения настроек программы в текстовом файле, например «config.cfg»? - PullRequest
2 голосов
/ 07 мая 2011

Часто я вижу некоторые программы и особенно игры, которые хранят настройки в текстовом файле.Я хочу иметь то же самое в своем приложении C # WinForms (я знаю, что это возможно сделать с настройками приложения как для пользователя, так и для стороны программного обеспечения), так как я думаю, что конечному пользователю легче иметь дело с этим.

Так что мне нужно знать, как эти файлы настроек читаются и, например, установить поля класса.

Представьте, что у меня есть класс, который имеет следующие поля:

private double vOffset = 0;
private bool Refresh = false;

А вот и мой текстовый файл (допустим, файл называется «config.cfg»):

;This is a comment
Voltage Offset = 0.08
;Refresh Enable = 1 | Disable = 0
Refresh = 1

Хотелось бы услышать ваши идеи и, возможно, некоторыекоды возможно!как для чтения этого файла, так и для обновления полей класса, а также для сохранения или обновления этого списка из программного обеспечения.

Спасибо.

Ответы [ 3 ]

4 голосов
/ 07 мая 2011

Можно ли использовать стандартные классы настроек .NET?

Преимущества:
- вам не нужно код для этого
- у вас есть интерфейс для редактирования настроек по умолчанию
- вы ссылаетесь на настройки в коде печатным способом, например, Settings.Default.Test1.
- ваши настройки будут сохранены в файле конфигурации приложения, который находится в формате XML.

Подробнее здесь: http://msdn.microsoft.com/en-us/library/k4s6c3a0.aspx.

Settings

В конфигурационном файле это будет выглядеть так:

  <setting name="Test2"
           serializeAs="String">
    <value>My string setting</value>
  </setting>

Вы можете утверждать, что XML нелегко читать для конечного пользователя. Но я считаю, что пользователи, которые понимают, что такое «смещение напряжения», не должны испытывать проблем при чтении / обновлении настроек в файле xml:).

2 голосов
/ 07 мая 2011

На самом деле самый простой способ сделать это в среде .net - это иметь файл настроек xml.Используя xmlserializer, вы можете сериализовать объект в текст и отменить его реализацию из текста.

http://msdn.microsoft.com/en-us/library/system.xml.serialization.xmlserializer.aspx

Редактировать: также xmlserializer не будет сериализовать частные поля / свойства, поэтому вы должны использовать публичныеполучить желаемый результат.

1 голос
/ 07 мая 2011

Настройки обычно хранятся в одном из распространенных форматов, например XML (очень распространенный в настоящее время), INI (раньше использовался как общий), LAU, ...

Сериализация объекта в эти форматы или десериализация из нихможет быть сделано с помощью встроенных сериализаторов (например, XmlSerializer в .NET), сторонних или даже специализированных.

...