다른 하위 목록을 serialize하는 메서드를 만들고 싶습니다. 각 어린이는 자신의 XML 파일을 가져옵니다. 하나의 개체에 대해 이렇게하면 쉽다 :전달 목록 <child>을 인수로 전달 하시겠습니까?
인터페이스를 ISerializable { }
public class Item : ISerializable { public string name { get; set; } public int number { get; set; } } public class Weapon : ISerializable { public string name { get; set; } public int damage {get; set;} }
public static void SerializeToXML(ISerializable child)
{
XmlSerializer serializer = new XmlSerializer(child.GetType());
using (TextWriter textWriter = new StreamWriter("test.xml"))
{
serializer.Serialize(textWriter, child);
}
}
내가 원하는 결과를 얻기 위해 직렬화 방법에 ISerializable
에서 파생 아무것도 넣을 수 있습니다. 그러나 가능한 인수로 List<ISerializable>
을 지정하면 Cannot convert List<item> to List<ISerializable>
을 컴파일하지 않습니다. 어쨌든이 문제를 해결하려면?
public static void SerializeListToXML(List<ISerializable> listToXML)
{
XmlSerializer serializer = new XmlSerializer(listToXML.GetType());
using (TextWriter textWriter = new StreamWriter("test.xml"))
{
serializer.Serialize(textWriter, listToXML);
}
}
내가하는 이유는 훨씬 더 큰 구조의 XML 템플릿을 얻는 것이므로 내 프로그램에 XML을 수동으로 추가하기 위해서입니다. 필자는 serializer를 처음 만들면 처음부터 올바른 XML 구조를 가질 수 있다는 것을 알게되었습니다. 아마도 이것은 나중에 사용자 데이터를 저장하는 줄에 유용 할 수 있습니다.
이것이 작동하는 것 같습니다. 감사합니다. 왜 당신 downvote, 아마도 당신은 좀 더 정교한을 가지고있어 확실하지 않습니다. – Madmenyo