在我的WPF应用程序中,我有一个呈现给用户的表单,用户填写表格,例如,一个位置。然后,这些表单条目用于从自定义类构造对象,并在下一个视图中显示有关输入位置的详细信息。
我需要的是一种能够保存动态创建的对象的方法,以便在关闭并重新打开应用程序时,我可以显示先前输入的对象的name属性,以便用户可以从先前输入的对象重新打开数据。
认为我可以将它们序列化为.osl文件,但这只会保存公共值。 所以我认为必须有一个更简单的方法
任何帮助表示赞赏!
答案 0 :(得分:3)
了解.Net Serialization
。
[Serializable]
class Person
{
public int Age { get; set; }
public string Name { get; set; }
}
[Serializable]
class Address
{
public string City { get; set; }
}
static public void SerializeToXML(Person p, Address add)
{
IFormatter formatter = new BinaryFormatter();
using (FileStream stream = new FileStream(@"C:\data.xml", FileMode.Create, FileAccess.Write, FileShare.None))
{
formatter.Serialize(stream, p);
formatter.Serialize(stream, add);
}
}
static void DeserializeFromXML()
{
IFormatter formatter = new BinaryFormatter();
using (FileStream stream = new FileStream(@"C:\data.xml", FileMode.Open, FileAccess.Read, FileShare.None))
{
Person p = (Person)formatter.Deserialize(stream);
Address add = (Address)formatter.Deserialize(stream);
}
}
使用:
Person p = new Person { Age = 23, Name = "Ram" };
Address add = new Address { City = "Khurja,India" };
SerializeToXML(p, add);
DeserializeFromXML();
这样您就可以序列化/反序列化您想要的任何内容。