я тут хренью страдал используя xml файлы, наладил сохранение объектов
public class MyProcess
{
/// <summary>
/// Имя приложения
/// </summary>
[XmlElement("Name", IsNullable = false)]
public string name { get; set; }
/// <summary>
/// Полное имя файла
/// </summary>
[XmlElement("Path", IsNullable = false)]
public string path { get; set; }
/// <summary>
/// 0 - unknown
/// 1 - TCP
/// 2 - UDP
/// </summary>
public List<int> protocol { get; set; }
/// <summary>
/// Номер порта, протокол хранится в переменной protocol с тем же индексом.
/// </summary>
public List<int> port { get; set; }
/// <summary>
/// Конструктор (необходимо для сохранения в XML)
/// </summary>
public MyProcess() { }
/// <summary>
/// Конструктор, создающий новый экземпляр объекта. Инициализирует списки protocol и port
/// </summary>
/// <param name="name">Имя приложения</param>
/// <param name="path">Полное имя файла</param>
public MyProcess(string name, string path)
{
this.name = name;
this.path = path;
this.protocol = new List<int>();
this.port = new List<int> ();
}
}
/// <summary>
/// Класс, группирующий все процессы, выбранные пользователем. Используется как корень для XML
/// </summary>
[XmlRootAttribute("Settings", Namespace = "TCPUDPListener")]
public class Processes
{
/// <summary>
/// Индекс выбранного процесса (текущий процесс)
/// </summary>
[XmlElement("DefaultSelectedProcess")]
public int selected { get; set; }
/// <summary>
/// Список всех процессов (имя, полное имя файла, протокол, порт)
/// </summary>
[XmlArray("Processes"), XmlArrayItem("Process")]
public List<MyProcess> processes { get; set; }
/// <summary>
/// Конструктор. Инициализирует список процессов (processes).
/// </summary>
public Processes() { processes = new List<MyProcess>(); }
}
/// <summary>
/// Список процессов
/// </summary>
private Processes processList = new Processes();
/// <summary>
/// Сохраняет список процессов в XML (имя файла указывается при инициализации списка)
/// </summary>
public void SaveProcessList()
{
XmlSerializer xmlSerializer = new XmlSerializer(typeof(Processes));
TextWriter fs = new StreamWriter(settingsFileName);
xmlSerializer.Serialize(fs, processList);
fs.Close();
}
/// <summary>
/// Загружает список процессов из XML (имя файла указывается при инициализации списка)
/// </summary>
public void LoadProcessList()
{
SelectedIndex = -1;
if (!File.Exists(settingsFileName)) return;
XmlSerializer xmlSerializer = new XmlSerializer(typeof(Processes));
TextReader fs = new StreamReader(settingsFileName);
processList = (Processes)xmlSerializer.Deserialize(fs);
fs.Close();
}
я тут хренью страдал используя xml файлы, наладил сохранение объектов
by delamer, 4 years agoPlease log in to post a comment.