|
Unutmayayım diye yazdıklarım... |
XmlSerializer'da Boş Namespace05.09.2009 tarihinde oğuzhan tarafından yazıldı.Bu aralar banka api'leri ile ilgili bir sürü atraksiyon yapıyoruz. Genelde hepsi xml ile haberleştiğinden yoğun bir şekilde Serializable class oluşturup XmlSerialization kullanıyoruz. Böylece xml nodları ile uğraşmayıp daha yönetilebilir kod ve daha oop programlar yazmış oluyoruz. peh!Siz aksini belirtmedikçe serileştirdiğiniz class'larda istenmeyen attirubutes'leri sistem kendi ekleyebiliyor. Bunlardan en belası Xml'in kök düğümünde (XmlRoot) Namespace'i kendi kafasına göre vermesidir. Böyle olunca banka xml şablon doğrulamasında takılıp isteğiniz hatalı olarak geri dönüyor. Bunu engellemek için pratik bir yöntem var. Aşağıda bunu vermeye çalışayım. Örnek Class'ımız [Serializable]Bu basit class'ı serileştirdiğimizde aşağıdaki gibi bir xml dökümanı oluşturulur. <?xml version="1.0" encoding="utf-8"?> <Banka xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Host="https://bankaapi.banka.com" User="kahtalimici" Pass="michaeljacson"> <Amount>10.50</Amount> </Banka> Serileştirme sonucu xmlns namespace'ini sistem kendisi ekledi ki senaryomuza göre . Bunu engellemek için XmlSerializerNamespaces sınıfını kullanarak boş bir namespace'i Serileştirme metodumuza eklememiz gerekiyor. Bunun için direkt bir metod veya özellik yok ama aşağıdaki gibi hile işimizi görüyor. string XmlData; Bunun sonucunda xml dökümanınıza otomatik atanan Namespace attirubutes'leri gelmeyerek yanlış ama daha temiz bir xml dökümanı elde etmiş oluyorsunuz. |
En çok ilgi görenler... HP IPAQ 914c Rastgele birşeyler... Düzenli İfadeler (Re... Şebeke WHT, Fıroİş, Denizİş, Serkan, Semih, Sewgi, Beşir, İzgençvos, Erkan, Mumin, Aliİş, Lütfü, Alper, Yusuf |
|
2003 - Oğuzhan YILMAZ Web Hosting Sponsor Vargonen Technologiies |