我有各種複雜的對象,往往有其他複雜的對象的集合。有時我只想在需要時加載集合,所以我需要一種方法來跟蹤集合是否已加載(null/empty並不一定意味着它尚未加載)。爲此,這些複雜的對象繼承自維護已加載集合集合的類。然後,我們只需要一個電話在二傳手添加到功能,我們要進行跟蹤,像這樣每個集合:XmlSerializer和OnSerializing/OnSerialized替代
public List<ObjectA> ObjectAList {
get { return _objectAList; }
set {
_objectAList = value;
PropertyLoaded("ObjectAList");
}
}
的PropertyLoaded功能更新的集合,跟蹤哪些藏品都被載入。
不幸的是,這些對象在Web服務中被使用,因此被(序列化)和所有設置器被調用,並且PropertyLoaded在實際上沒有被調用時被調用。
理想情況下,我希望能夠使用OnSerializing/OnSerialized,以便函數知道它是否被合法調用,但是我們使用XmlSerializer,因此這不起作用。儘管我想更改爲使用DataContractSerializer,但出於各種原因,目前我無法做到這一點。
是否有其他方式知道序列化是否發生?如果沒有,或者是否有更好的方法來達到上述目的,而無需每次需要跟蹤新集合時都要額外編寫代碼?