在WPF中保存动态创建的对象

时间:2012-07-29 16:14:15

标签: c# wpf visual-studio save

在我的WPF应用程序中,我有一个呈现给用户的表单,用户填写表格,例如,一个位置。然后,这些表单条目用于从自定义类构造对象,并在下一个视图中显示有关输入位置的详细信息。

我需要的是一种能够保存动态创建的对象的方法,以便在关闭并重新打开应用程序时,我可以显示先前输入的对象的name属性,以便用户可以从先前输入的对象重新打开数据。

认为我可以将它们序列化为.osl文件,但这只会保存公共值。 所以我认为必须有一个更简单的方法

任何帮助表示赞赏!

1 个答案:

答案 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();

这样您就可以序列化/反序列化您想要的任何内容。