我如何 XML 序列化来自另一个 class 的列表?

How do I XML serialize a list from another class?

我在单独的 class 中有一个列表。我如何将它转移到我单独的 Serializable class?

[Serializable]
public class ToSerialize
{
//code
}

如果我没理解错的话,你想做的是:

  1. 在 class 中添加一个 property:
[Serializable]
public class ToSerialize
{
    public List<SomeType> MyList {get; set;}
}
  1. 将要序列化的列表分配给一个实例:
// somewhere in your code ...
var someList = new List<SomeType>(); // just to clarify what the List should look like
someList.Add(new SomeType()); 
// ...

var output = new ToSerialize();
output.MyList = someList; // assign the list to that property
  1. 序列化output

注意:要使列表可序列化,其内容(即上例中的类型“SomeType”)需要可序列化。


虽然上面的内容应该让您更进一步,但您稍后可能想要实际上不是分配列表本身,而是分配它的副本及其元素。这通常被称为“深层复制”或“深层克隆”,有时也称为“快照”。以防万一你想做更多的研究。