Ich habe Probleme beim Deserialisieren einer Liste von Objekten. Ich kann nur ein Objekt in ein Objekt serialisieren, bekomme aber die Liste nicht. Ich bekomme keinen Fehler es gibt nur eine leere Liste zurück. Dies ist der XML, die zurückgegeben wird:Probleme Deserialisierung Liste der Objekte
<locations>
<location locationtype="building" locationtypeid="1">
<id>1</id>
<name>Building Name</name>
<description>Description of Building</description>
</location>
</locations>
Dies ist die Klasse ich habe, und ich bin Deserialisieren in der GetAll
Methode:
[Serializable()]
[XmlRoot("location")]
public class Building
{
private string method;
[XmlElement("id")]
public int LocationID { get; set; }
[XmlElement("name")]
public string Name { get; set; }
[XmlElement("description")]
public string Description { get; set; }
[XmlElement("mubuildingid")]
public string MUBuildingID { get; set; }
public List<Building> GetAll()
{
var listBuildings = new List<Building>();
var building = new Building();
var request = WebRequest.Create(method) as HttpWebRequest;
var response = request.GetResponse() as HttpWebResponse;
var streamReader = new StreamReader(response.GetResponseStream());
TextReader reader = streamReader;
var serializer = new XmlSerializer(typeof(List<Building>),
new XmlRootAttribute() { ElementName = "locations" });
listBuildings = (List<Building>)serializer.Deserialize(reader);
return listBuildings;
}
}
Was Der Fehler bekommst du? –
Welche Liste sehen Sie nicht serialisiert? Wenn es die 'GetAll()' Methode ist, dann ist das, weil Serialisierer nicht (gut, möglicherweise selten, ich denke) im Geschäft der aufrufenden Klassenmethoden sind. Sie sind dabei, die Eigenschaften eines Objekts zu erhalten. – 48klocs
Ich erhalte keinen Fehler, es wird nur eine leere Liste zurückgegeben. Ich versuche nicht, die GetAll-Methode zu serialisieren, ich benutze die Get All-Methode, um aus einem Webdienst zu deserialisieren und dieses Gebäudeobjekt zu füllen. –