Pelaksanaan antara muka boleh bersiri IXml: amalan terbaik dan prinsip panduan
Pelaksanaan yang betul antara muka IXmlSerializable
adalah peraturan yang kritikal dan khusus serta amalan terbaik perlu dipatuhi untuk memastikan pensirilan dan penyahsirilan yang betul.
Kaedah GetSchema()
Bertentangan dengan salah tanggapan biasa, kaedah IXmlSerializable
yang dilaksanakan GetSchema()
tidak seharusnya mengembalikan null
. Jika skema tersuai diperlukan, ia harus ditentukan menggunakan atribut XmlSchemaProviderAttribute
pada kelas.
Kaedah ReadXml()
Kedudukan elemen: Kaedah ReadXml
harus beralih ke elemen seterusnya sebelum kembali. Ini kerana rangka kerja menulis elemen pembalut dan meletakkan pembaca XML selepas teg pembukaannya. Sifat objek harus dibaca dalam elemen pembalut ini dan tag elemen penutup harus dibaca untuk menyelesaikan proses penyahserialisasian.
Kaedah WriteXml()
Elemen akar: Dalam kaedah WriteXml
, tidak perlu menulis elemen akar untuk objek. Rangka kerja secara automatik mengendalikan elemen pembalut, termasuk teg pembukaan dan penutup. Pelaksanaan harus menulis kandungan objek, termasuk sebarang elemen kanak-kanak.
Elemen kanak-kanak:
Objek kanak-kanak harus dikendalikan dan ditulis sama dengan objek induknya. Gunakan kaedah ReadXml
dan WriteXml
dalam objek ini untuk mensiri dan menyahsiri keadaannya. Teg elemen penutup elemen kanak-kanak juga harus dibaca/ditulis secara eksplisit.
Contoh pelaksanaan
Contoh kod yang disediakan menunjukkan MyCalendar
pelaksanaan kelas MyEvent
dan IXmlSerializable
, mengikut amalan terbaik yang digariskan di atas. Ia membaca/menulis atribut dengan betul dalam ReadXml
dan WriteXml
, dengan kedudukan elemen yang dijangkakan dan pengendalian elemen pembalut.
Atas ialah kandungan terperinci Pelaksanaan IXmlSerializable: Amalan Terbaik dan Masalah Biasa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!