public virtual void Save(T objectToSerialize, string fileName)
 {
     using (var serializationContext = SerializationTransaction.Create(_container))
     {
         var serializer = _serializerRepository.SerializerFor(objectToSerialize);
         var xel        = serializer.Serialize(objectToSerialize, serializationContext);
         xel.Save(fileName);
     }
 }
      private XElement childNodeFor(TProperty child, TContext context)
      {
         if (canBeSerializedAsValue)
         {
            var childNode = _serializerRepository.CreateElement(ChildMappingName);
            childNode.SetValue(child.ConvertedTo<string>());
            return childNode;
         }

         var serializer = _serializerRepository.SerializerFor(child);
         return serializer.Serialize(child, context);
      }
Beispiel #3
0
        public XObject Serialize(TObject objectToSerialize, TContext context)
        {
            var subObject = _propertyMap.ResolveValue(objectToSerialize);

            if (subObject == null)
            {
                return(null);
            }

            var serializer = _serializerRepository.SerializerFor(subObject);
            var subNode    = serializer.Serialize(subObject, context);

            if (_serializerRepository.NeedsDeserialization)
            {
                subNode.AddAttribute(SerializerConstants.DynamicName, _propertyMap.Name);
            }

            return(subNode);
        }
        public static IFormulaCache DeserializeFormulaCacheIn(this IXmlSerializerRepository <SerializationContext> serializerRepository, XElement element, SerializationContext serializationContext)
        {
            var formulaCacheSerializer = serializerRepository.SerializerFor(serializationContext.Formulas);
            var formulaNode            = element.Element(formulaCacheSerializer.ElementName);

            if (formulaNode == null)
            {
                return(new FormulaCache());
            }

            return(formulaCacheSerializer.Deserialize <IFormulaCache>(formulaNode, serializationContext));
        }
        public static void AddFormulaCacheElement(this IXmlSerializerRepository <SerializationContext> serializerRepository, XElement element, SerializationContext serializationContext)
        {
            var formulasSerializer  = serializerRepository.SerializerFor(serializationContext.Formulas);
            var formulaCacheElement = formulasSerializer.Serialize(serializationContext.Formulas, serializationContext);

            serializationContext.ClearFomulaCache();
            if (!formulaCacheElement.HasElements)
            {
                return;
            }

            //only one node and that node is the string map list
            if (formulaCacheElement.Descendants().Count() == 1 && formulaCacheElement.Element(Constants.Serialization.STRING_MAP_LIST) != null)
            {
                return;
            }

            element.AddElement(formulaCacheElement);
        }