Exemplo n.º 1
0
        /// <summary>
        /// Builds the context configuration and configures the override attributes for the serializer.
        /// </summary>
        private void BuildContext(SerializerConfigurationContext configurationContext)
        {
            foreach (var e in configurationContext.Entities)
            {
                e.ConfigureEntity(configurationContext);
            }

            foreach (var e in configurationContext.Entities)
            {
                e.BindEntityToModel(configurationContext);
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// Get an instance of the underlying serializer configured for this context.
        /// </summary>
        /// <param name="rootType">Type of the root element in the Xml.</param>
        /// <returns>Instance of a serializer configured for the entities in this context.</returns>
        private XmlSerializer GetSerializer(Type rootType)
        {
            if (null != this.instanceSerializer)
            {
                return(this.instanceSerializer);
            }

            this.serializerContext = new SerializerConfigurationContext(this.GetType());
            this.BuildSerializerContext(this.serializerContext);
            this.BuildContext(this.serializerContext);
            this.instanceSerializer = new XmlSerializer(rootType, this.serializerContext.Attributes);

            return(this.instanceSerializer);
        }
Exemplo n.º 3
0
 protected override void BuildSerializerContext(SerializerConfigurationContext configurationContext)
 {
     configurationContext.Entity <PoHeader>().HasArray(e => e.LineItems).WithElementName("lines").WithArrayItemName("line");
     configurationContext.Entity <PoLine>().HasAttribute(e => e.Tax).WithName("tax");
     configurationContext.Entity <PoLine>().HasAttribute(e => e.Quantity).WithName("qty");
 }
Exemplo n.º 4
0
 /// <summary>
 /// When implemented in a deriving class this method configures the context for serialzing the target entities.
 /// </summary>
 /// <param name="configurationContext">Xml serializer context to configure.</param>
 protected abstract void BuildSerializerContext(SerializerConfigurationContext configurationContext);