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
}