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);
        }