Ich habe ein Objekt, das ein Objekt enthält, die als IEnumerable definded, dhSerialize Objekte mit xmlSerializer.Serialize und IEnumerable Objekte
[Serializable]
[XmlRoot("MyObject")]
public class MyObject
{
[XmlAttribute]
public string Name { get; set; }
[XmlArrayAttribute("Numbers")]
public IEnumerable<string> Numbers { get; set; }
}
Als ich das XmlSerializer.Serialize gegen das Objekt ausgeführt werden, das heißt
MyObject myObject = new MyObject() {
Name = "My Name" ,
Numbers= new List<string>(){"One", "Two"}
};
var xmlSerializer = XmlSerializer.FromTypes(new[]
{ typeof(MyObject) })[0];
using (var xmlWriter = XmlWriter.Create(@"MyObject.xml"))
{
if (xmlWriter != null) xmlSerializer.Serialize(xmlWriter, myObject);
}
ich
„Kann nicht Mitglied SerializeObjects.MyObject.Numbers serialisiert von Typ System.Collections.Generic.IEnumerable`1 [[System.String, mscorlib, Version = 2.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089]] , weil es ist eine Schnittstelle.“
Ich verstehe, dass Sie eine Schnittstelle nicht serialisieren können.
Nun zur Frage:
Was ist die beste Erklärung für die ist "public IEnumerable Zahlen {get; set;}"?
Sollte ich List<>
verwenden, wenn nicht warum nicht?