public Serializator()
     : this(new TypeManager(), new HeapManager())
 {
     TypeManager      = new TypeManager();
     HeapManager      = new HeapManager();
     ResolversManager = new ResolverBank(this);
 }
예제 #2
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()));
        }
 public Serializator(TypeManager typeManager, HeapManager heapManager)
 {
     TypeManager      = typeManager;
     HeapManager      = heapManager;
     ResolversManager = new ResolverBank(this);
 }
예제 #4
0
 /// <summary>
 /// Отчищает все кучи.
 /// Вызывает HeapManager.FlashHeaps();
 /// </summary>
 public void FlashHeaps()
 {
     HeapManager.FlashHeaps();
 }