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