Şu anda üzerinde hiçbir denetimim bulunmayan aşağıdaki XML yapısına (kısaltılmış olarak düzenlenmiş) sahibim. Bu Araç sınıfının tek örneği haline XML serisini edebilmek istiyorumİç içe XML nesnesini C# sınıfına deserialize edin. #
[XmlRoot("GetVehicles"), XmlType("Vehicle")]
public class Vehicle
{
public string Colour { get; set; }
public string NumOfDoors { get; set; }
public string BodyStyle { get; set; }
}
:
<GetVehicles>
<ApplicationArea>
<Sender>
<Blah></Blah>
</Sender>
</ApplicationArea>
<DataArea>
<Error>
<Blah></Blah>
</Error>
<Vehicles>
<Vehicle>
<Colour>Blue</Colour>
<NumOfDoors>3</NumOfDoors>
<BodyStyle>Hatchback</BodyStyle>
<Vehicle>
</Vehicles>
</DataArea>
</GetVehicles>
Ben şu Class var. Zamanın% 99'u, XML'in yalnızca bir 'Araç' öğesi döndürmesi gerekir. Henüz 'Taşıt' unsuru içinde birden fazla 'Araç' öğesi içeriyorsa henüz ilgilenmiyorum.
Maalesef XML verileri şu anda sınıf özelliklerime eşlenmiyor; Deserialize yöntemimi çağırdıktan sonra boş bırakılıyorlar. Ben veri ayıklama sadece ilgincim
private static T Deserialize<T>(string data) where T : class, new()
{
if (string.IsNullOrEmpty(data))
return null;
var ser = new XmlSerializer(typeof(T));
using (var sr = new StringReader(data))
{
return (T)ser.Deserialize(sr);
}
}
Böyle vb 'ApplicationArea', 'Hata' gibi daha üst elemanları umurumda değil: Bütünlüğü için
, burada benim Deserialize yöntemidir 'Araç' öğesi içinde. Bu verileri XML'den yalnızca serileştirmek için nasıl alabilirim?
Harika çalışıyor. Çok teşekkürler. – marcusstarnes