Сохранение данных в консольном приложении(.NET Framework) C#
Есть приложение которое присваивает введенные значения нужным переменным. Как организовать сохранение этих значений,что бы при новом открытии приложения я мог вывести их значения(данные прошлой сессии) в консоли?
class Program
{
static void Main(string[] args)
{
Console.WriteLine("число 1");
int x1 = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("число 2");
int x2 = Convert.ToInt32(Console.ReadLine());
Console.ReadLine();
}
}
Ответы (1 шт):
Автор решения: Bulson
→ Ссылка
Сохранение в XML файл
using System;
using System.IO;
using System.Xml.Serialization;
namespace ConsoleApp14
{
//Класс для хранения данных программы
public class ProgramData
{
public int Value1 { get; set; }
public int Value2 { get; set; }
public override string ToString() => $"{Value1}, {Value2}";
}
class Program
{
private static readonly XmlSerializer _xmlSerializer =
new XmlSerializer(typeof(ProgramData));
static void Main(string[] args)
{
var file = @"D:\programdata.xml";
var progData = GetProgramData(file);
Console.WriteLine(progData);
Console.WriteLine(new string('=', 20));
SetNewValues(progData);
Console.WriteLine(progData);
SaveProgData(progData, file);
Console.ReadLine();
}
/// <summary>
/// Чтение из файла значений и создание экземпляра ProgramData
/// </summary>
/// <param name="file">путь к файлу</param>
/// <returns>экземпляр ProgramData</returns>
private static ProgramData GetProgramData(string file)
{
ProgramData progData = new ProgramData();
if (File.Exists(file))
{
try
{
using (var fs = File.OpenRead(file))
{
progData = (ProgramData)_xmlSerializer.Deserialize(fs);
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
return progData;
}
/// <summary>
/// Присваивание новых значений
/// </summary>
/// <param name="progData">экземпляр ProgramData</param>
private static void SetNewValues(ProgramData progData)
{
Console.WriteLine("число 1");
if (int.TryParse(Console.ReadLine(), out int value1))
{
progData.Value1 = value1;
}
Console.WriteLine("число 2");
if (int.TryParse(Console.ReadLine(), out int value2))
{
progData.Value2 = value2;
}
}
/// <summary>
/// Сохранение в файл экземпляра ProgramData
/// </summary>
/// <param name="progData">экземпляр ProgramData</param>
/// <param name="file">путь к файлу</param>
private static void SaveProgData(ProgramData progData, string file)
{
try
{
using (var fs = File.OpenWrite(file))
{
_xmlSerializer.Serialize(fs, progData);
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}
}