Exemple #1
0
        internal XElement HeapResolve(object resolveObject, string conventionType)
        {
            Guid finalGuid;

            //Метод GetCreateGuid(object,out Guid) возвращает bool значение которого отвечает на вопрос:
            //Был ли создан новый Guid для этого объекта
            if (HeapManager.GetCreateGuid(resolveObject, out finalGuid))
            {
                //Для объекта resolveObject уже создан Guid методом GetCreateGuid
                //Поэтому теперь мы обновляем сериализированное состояние объекта и добавляем его в кучу сериализированных объектов
                HeapManager.Serialized.ReplaceValue(finalGuid, ResolveInternal(resolveObject, conventionType));
            }

            //В случае если объект resolveObject существует в куче, предпологается что он также
            //существет и в куче сериализированных объектов.
            //В конечном счете, в итоговой xml-узел, в качестве значения, будет помещен guid указывающий на объект resolveObject
            return(XMLUtility.CreateReferenceNode(conventionType, finalGuid.ToString()));
        }