2
다음은 문제의 핵심을 제시하는 생산 코드를 추출한 것입니다. 처음 실행 된 후 직렬화 된 목록에는 3 개의 항목이 올바르게 있습니다. 그러나 앱을 두 번 이상 실행 한 후에는 xml에 3 개의 항목이 추가되고 직렬화되지 않은 목록에 매번 추가됩니다. 즉, 첫 번째 실행 후 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
}
이 문제를 해결하는 방법은 무엇입니까?