Серіалізація
Бінарна серіалізація
class Program
{
[Serializable]
public class UserPrefs
{
public string WindowColor;
public int FontSize;
}
static void Main(string[] args)
{
UserPrefs userData = new UserPrefs();
userData.WindowColor = "Yellow";
userData.FontSize = 50;
BinaryFormatter binFormat = new BinaryFormatter();
using (Stream fStream = new FileStream("user.dat",
FileMode.Create, FileAccess.Write, FileShare.None))
{
binFormat.Serialize(fStream, userData);
}
}
}
public class Program
{
[Serializable]
public class UserPrefs
{
public string WindowColor;
public int FontSize;
}
static void Main(string[] args)
{
UserPrefs userData = new UserPrefs();
userData.WindowColor = "Yellow";
userData.FontSize = 50;
XmlSerializer formatter = new XmlSerializer(typeof(UserPrefs));
using (Stream fStream = new FileStream("user.dat",
FileMode.Create, FileAccess.Write, FileShare.None))
{
formatter.Serialize(fStream, userData);
}
}
}
Список об'єктів
List<UserPrefs> list = new List<UserPrefs>();
UserPrefs userData = new UserPrefs();
userData.WindowColor = "Yellow";
userData.FontSize = 50;
list.Add(userData);
UserPrefs userData2 = new UserPrefs();
userData2.WindowColor = "Blue";
userData2.FontSize = 70;
list.Add(userData2);
XmlSerializer formatter = new XmlSerializer(typeof(List<UserPrefs>));
using (Stream fStream = new FileStream("user.dat",
FileMode.Create, FileAccess.Write, FileShare.None))
{
formatter.Serialize(fStream, list);
}
Усі класи мають мати публічні змінні та конструктори за замовчанням!
try
{
XmlSerializer deSerializer = new XmlSerializer(typeof(List<Car>));
using (TextReader reader = new StreamReader("all_car.xml"))
{
allCar = (List<Car>)deSerializer.Deserialize(reader);
}
foreach (Car cars in allCar)
{
listBox1.Items.Add(cars);
}
}
catch (IOException)
{
MessageBox.Show("Не вдалося знайти файл із раніше збереженими даними");
allCar = new List<Car>();
}