c# dictionary 파일 제어 – DataContractSerializer

클래쓰를 리스트에 담아 하는 경우와 같다.

[DataContract(Name = "Name1", Namespace = "Namespace1")]
class Class1
{
    [DataMember]
    public int Int;
}

Dictionary<int, Class1> Dictionary1;

private void button1_Click(object sender, EventArgs e)
{
    Dictionary1 = new();

    Dictionary1.Add(1, new Class1 { Int = 1 });
    Dictionary1.Add(2, new Class1 { Int = 2 });

    FileStream fileStream = new("file.txt", FileMode.Create);

    DataContractSerializer dataContractSerializer = new(typeof(Dictionary<int, Class1>));

    dataContractSerializer.WriteObject(fileStream, Dictionary1);

    fileStream.Close();
}

private void button2_Click(object sender, EventArgs e)
{
    FileStream fileStream = new("file.txt", FileMode.Open);

    DataContractSerializer dataContractSerializer = new(typeof(Dictionary<int, Class1>));

    Dictionary1 = (Dictionary<int, Class1>)dataContractSerializer.ReadObject(fileStream);

    fileStream.Close();

    button2.Text = Dictionary1[2].Int.ToString(); // 2
}