Example #1
0
        private IYamlSerializable CreateProcessor(out RoutingSerializer routingSerializer)
        {
            routingSerializer = new RoutingSerializer();

            // Add registered serializer
            foreach (var typeAndSerializer in settings.serializers)
            {
                routingSerializer.AddSerializer(typeAndSerializer.Key, typeAndSerializer.Value);
            }

            // Add registered factories
            foreach (var factory in settings.AssemblyRegistry.SerializableFactories)
            {
                routingSerializer.AddSerializerFactory(factory);
            }

            // Add default factories
            foreach (var defaultFactory in DefaultFactories)
            {
                routingSerializer.AddSerializerFactory(defaultFactory);
            }

            var typingSerializer = new TagTypeSerializer(routingSerializer);

            return(settings.EmitAlias ? (IYamlSerializable) new AnchorSerializer(typingSerializer) : typingSerializer);
        }
Example #2
0
        private IYamlSerializable CreateProcessor(out RoutingSerializer routingSerializer)
        {
            routingSerializer = new RoutingSerializer(Settings.SerializerFactorySelector);

            var tagTypeSerializer = new TagTypeSerializer();

            routingSerializer.Prepend(tagTypeSerializer);
            if (Settings.EmitAlias)
            {
                var anchorSerializer = new AnchorSerializer();
                tagTypeSerializer.Prepend(anchorSerializer);
            }

            Settings.ChainedSerializerFactory?.Invoke(routingSerializer.First);
            return(routingSerializer.First);
        }