2
下面是我們的生產代碼提取呈現了問題的核心。第一次運行後,序列化列表有3個項目正確。但是,運行應用程序第二次(及以上)每次3項添加到XML和反序列化到列表後面。顯示第一次運行後ABC即但經過第二ABCABC和第三ABCABCABC之後。Desalinizing初始化列表
Initialzier需要用於其他目的,並且不能被去除。
class Program
{
static void Main(string[] args)
{
var ser = new XmlSerializer(typeof(Ser));
Ser s;
try
{
using (var sr = new StreamReader("Test.xml"))
{
s = ser.Deserialize(sr) as Ser;
}
}
catch
{
s = new Ser();
}
using (var sw = new StreamWriter("Test.xml"))
{
ser.Serialize(sw, s);
}
foreach (var text in s.List)
{
Console.WriteLine(text);
}
}
}
public class Ser
{
public List<string> List { get; set; }= new List<string> {"A", "B", "C"}; //This initializer is a must
}
如何解決這個問題?