C# 在WPF中保存动态创建的对象
在我的WPF应用程序中,我向用户提供了一个表单,用户填写关于位置的表单。然后使用这些表单条目从自定义类构造对象,并在下一个视图中显示有关输入位置的详细信息 我需要的是一种能够保存动态创建的对象的方法,以便在关闭和重新打开应用程序时,我可以显示以前输入的对象的名称属性,以便用户可以重新打开以前输入的对象中的数据 我认为我可以将它们序列化为一个.osl文件,但这只保存了公共值。 所以我想一定有更简单的方法C# 在WPF中保存动态创建的对象,c#,wpf,visual-studio,save,C#,Wpf,Visual Studio,Save,在我的WPF应用程序中,我向用户提供了一个表单,用户填写关于位置的表单。然后使用这些表单条目从自定义类构造对象,并在下一个视图中显示有关输入位置的详细信息 我需要的是一种能够保存动态创建的对象的方法,以便在关闭和重新打开应用程序时,我可以显示以前输入的对象的名称属性,以便用户可以重新打开以前输入的对象中的数据 我认为我可以将它们序列化为一个.osl文件,但这只保存了公共值。 所以我想一定有更简单的方法 感谢您的帮助 了解.Net序列化 [Serializable] class Pers
感谢您的帮助 了解
.Net序列化
[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);
}
}
使用:
通过这种方式,您可以序列化/反序列化任何您想要的内容。阅读
.Net序列化
[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);
}
}
使用:
通过这种方式,您可以序列化/反序列化任何您想要的内容。回答得很好,我已经让它完美地工作了。尽管您知道是否可以使用此方法将多个对象保存到文件中,并能够将它们反序列化回单独的对象中?因为当前的方法每次只是简单地覆盖xml文件。我知道我可以使用StreamWriter简单地添加到xml文件中,但正如我所说的,反序列化回单独的对象成为一个问题。答案很好,我已经让它完美地工作了。尽管您知道是否可以使用此方法将多个对象保存到文件中,并能够将它们反序列化回单独的对象中?因为当前的方法每次只是简单地覆盖xml文件。我知道我可以使用StreamWriter简单地添加到xml文件中,但正如我所说的,反序列化回单独的对象会成为一个问题。