protected virtual void DeserializeInlineReferenceList(object obj, IClassMap classMap, IPropertyMap propertyMap, XmlNode xmlObject) { IObjectManager om = this.Context.ObjectManager; IListManager lm = this.Context.ListManager; XmlNode xmlList = xmlObject.SelectSingleNode(propertyMap.GetDocElement()); IList list = (IList)om.GetPropertyValue(obj, propertyMap.Name); if (list == null) { list = lm.CreateList(obj, propertyMap); om.SetPropertyValue(obj, propertyMap.Name, list); IList cloneList = lm.CloneList(obj, propertyMap, list); om.SetOriginalPropertyValue(obj, propertyMap.Name, cloneList); } IInterceptableList mList; bool stackMute = false; mList = list as IInterceptableList; if (mList != null) { stackMute = mList.MuteNotify; mList.MuteNotify = true; } foreach (XmlNode xmlItem in xmlList.SelectNodes("item")) { object value = ManageInlineReference(xmlObject, obj, xmlItem);; if (value != null) { list.Add(value); } } if (mList != null) { mList.MuteNotify = stackMute; } om.SetNullValueStatus(obj, propertyMap.Name, false); IList clone = lm.CloneList(obj, propertyMap, list); om.SetOriginalPropertyValue(obj, propertyMap.Name, clone); }