正確實作IXmlSerializable
介面需要遵循特定規則和最佳實務。
GetSchema()方法規則:
與普遍認知相反,GetSchema()
方法應回傳null
。如文件說明:「實作IXmlSerializable
介面時,此方法應傳回null
引用。」
ReadXml/WriteXml方法指南:
對於ReadXml
和WriteXml
方法:
ReadXml
實作應從包裝元素的開頭開始讀取,直到讀取到結尾,包括所有內容。 WriteXml
實作應在包裝元素內寫入物件的XML表示形式,不包含外部元素。 處理子物件:
當序列化包含子物件的複雜物件時:
ReadXml
和WriteXml
方法都應透過為每個子類型實作IXmlSerializable
介面並根據需要遞歸呼叫ReadXml
/WriteXml
來處理子物件。 範例實作:
提供的範例程式碼示範了這些原則:
GetSchema()
方法回傳null
。 ReadXml
移動到第一個元素並從包裝元素開始讀取。 WriteXml
寫入屬性,而不是將其包裝在外部元素中。 對應的XML:
顯示的對應XML是正確的,每個物件元素(MyCalendar、MyEvent)都有自己的一組屬性。
以上是如何正確實作IXmlSerialized介面?的詳細內容。更多資訊請關注PHP中文網其他相關文章!