Ejemplo n.º 1
0
        /// <summary>
        /// Use XML serialization that supports interface-based messages.
        /// </summary>
        /// <param name="config"></param>
        /// <returns></returns>
        public static Configure XmlSerializer(this Configure config)
        {
            if (!Configure.BuilderIsConfigured())
            {
                SetXmlSerializerAsDefault.UseXmlSerializer = true;
                return(config);
            }

            var messageTypes = Configure.TypesToScan.Where(t => t.IsMessageType()).ToList();

            var mapper = new MessageMapper();

            mapper.Initialize(messageTypes);

            config.Configurer.RegisterSingleton <IMessageMapper>(mapper);
            config.Configurer.RegisterSingleton <IMessageCreator>(mapper);//todo - Modify the builders to auto register all types

            var serializer = new XmlMessageSerializer(mapper);

            serializer.Initialize(messageTypes);

            config.Configurer.RegisterSingleton <IMessageSerializer>(serializer);

            return(config);
        }
        /// <summary>
        /// Use XML serialization that supports interface-based messages.
        /// </summary>
        /// <param name="config"></param>
        /// <returns></returns>
        public static Configure XmlSerializer(this Configure config)
        {
            if (!Configure.BuilderIsConfigured())
            {
                SetXmlSerializerAsDefault.UseXmlSerializer = true;
                return(config);
            }

            config.Configurer.ConfigureComponent <MessageMapper>(DependencyLifecycle.SingleInstance);
            config.Configurer.ConfigureComponent <XmlMessageSerializer>(DependencyLifecycle.SingleInstance);

            return(config);
        }