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