Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
64
Task/Object-serialization/C-sharp/object-serialization.cs
Normal file
64
Task/Object-serialization/C-sharp/object-serialization.cs
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
using System;
|
||||
using System.IO;
|
||||
using System.Collections.Generic;
|
||||
using System.Runtime.Serialization.Formatters.Binary;
|
||||
|
||||
namespace Object_serialization
|
||||
{
|
||||
[Serializable] public class Being
|
||||
{
|
||||
public bool Alive { get; set; }
|
||||
}
|
||||
|
||||
[Serializable] public class Animal: Being
|
||||
{
|
||||
public Animal() { }
|
||||
|
||||
public Animal(long id, string name, bool alive = true)
|
||||
{
|
||||
Id = id;
|
||||
Name = name;
|
||||
Alive = alive;
|
||||
}
|
||||
|
||||
public long Id { get; set; }
|
||||
public string Name { get; set; }
|
||||
|
||||
public void Print() { Console.WriteLine("{0}, id={1} is {2}",
|
||||
Name, Id, Alive ? "alive" : "dead"); }
|
||||
}
|
||||
|
||||
|
||||
internal class Program
|
||||
{
|
||||
private static void Main()
|
||||
{
|
||||
string path =
|
||||
Environment.GetFolderPath(Environment.SpecialFolder.Desktop)+"\\objects.dat";
|
||||
|
||||
var n = new List<Animal>
|
||||
{
|
||||
new Animal(1, "Fido"),
|
||||
new Animal(2, "Lupo"),
|
||||
new Animal(7, "Wanda"),
|
||||
new Animal(3, "Kiki", alive: false)
|
||||
};
|
||||
|
||||
foreach(Animal animal in n)
|
||||
animal.Print();
|
||||
|
||||
using(var stream = new FileStream(path, FileMode.Create, FileAccess.Write))
|
||||
new BinaryFormatter().Serialize(stream, n);
|
||||
|
||||
n.Clear();
|
||||
Console.WriteLine("---------------");
|
||||
List<Animal> m;
|
||||
|
||||
using(var stream = new FileStream(path, FileMode.Open, FileAccess.Read))
|
||||
m = (List<Animal>) new BinaryFormatter().Deserialize(stream);
|
||||
|
||||
foreach(Animal animal in m)
|
||||
animal.Print();
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue