Bu xml'yi oluşturmak için linq'e ihtiyacınız yoktur, linq'i bir collection
oluşturmak ve koleksiyonu bir xml dosyasında serileştirmek için kullanabilirsiniz.
seri önce, sınıfta Serializable
özelliği eklemeniz gerekir:
[Serialize]
public class Order
{
public string OrderNo {get; set;}
public string ItemId {get; set;}
public string ItemDesc {get; set;}
public int Qty {get; set;}
}
(özelliklerini kullanarak) seri özelleştirmek için nasıl burada bir göz atın: http://msdn.microsoft.com/en-us/library/58a18dwa(v=vs.80).aspx
için böyle bir yöntem oluşturun
public statc void SerializeOrders(Order[] orders, string path)
{
XmlSerializer parse = new XmlSerializer(typeof(Order[]));
using (var writer = new StreamWriter(path))
{
parse.Serialize(writer, orders);
writer.Close();
}
}
Ve serisini: serialize
public statc Order[] Deserialize(string path)
{
XmlSerializer ser = new XmlSerializer(typeof(Order[]));
Order[] result;
using (XmlReader reader = XmlReader.Create(path))
{
result = (Order[]) ser.Deserialize(reader);
}
return result;
}
Ve kullanmalıyım? XmlSerialization kullanabilirsiniz ancak XML LINQ kullanarak gibi kolaydır ve tek içine sınıf uygulaması kilitlemez nerede
// get the collection
var orders = (from o in Queryable<Order>
where o.Something
select o).ToArray();
// serializing in xml
SerializeOrders(orders, "C:\\result.xml");
// deserializing the xml
var serializedOrders = Deserialize("C:\\result.xml");
XML'e LINQ yerine ... daha uygun olan bir XML seri hale getirici olurdu ... ve oldukça önemsiz. – Vivek
@vivek Tamamen yürekten katılmıyorum. –