C# - 序列化同一类的多个对象

时间:2016-10-22 17:30:04

标签: c# serialization syntax

我正在开发一个小工具来管理连接在网络上的几台计算机。该实用程序在UI上有一个“添加计算机”按钮,允许用户配置新计算机。

我有一个名为component的类:

public class component
{

public string name { get; set; }
public string ip { get; set; }
public string room { get; set; }

bla bla


}

请保持我绝对不是专业人士,如果这个问题听起来很愚蠢,请原谅我。

我遇到的第一个问题是:如何在运行时创建同一个类的多个实例?我想到的是使用深度克隆,使用序列化和反序列化。这是一个好方法吗?

第二个问题。让我们说在运行时我设法创建了我的克隆,并且我的网络中的每台计算机都有一个对象。如何创建包含所有这些对象的文件?我该如何序列化它们?

我不是在寻找代码,而只是为了让我指向正确方向的人,因为我很确定我的方法并不是最好的。欢迎提出所有建议。

非常感谢!

2 个答案:

答案 0 :(得分:0)

好的,如何创建我的班级实例

var myInstance = new MyClass();

如何将MyClass的实例序列化为文件

    var instance= new MyClass(); // <- instance
    using (var sw = new StreamWriter("Path_to_file"))
    {
        var ser = new XmlSerializer(typeof(MyClass));
        ser.Serialize(sw, instance);
    }

如何从文件中读取MyClass的实例

    using (var sr = new StreamReader("path_To_file"))
    {
        var ser = new XmlSerializer(typeof(MyClass));
        var myInstance = ser.Deserialize(sr) as T; // <- instance
    }

答案 1 :(得分:0)

要在程序中存储同一个类的多个实例,您需要一个名为List的对象(here MSDN参考和here快速教程)。 要存储列表,您有多种选择:使用xmljsonprotobuf protocol等序列化和反序列化,这是您的选择。