/// <summary> /// Writes the content of this YAML node to the specified stream. /// </summary> /// <param name="stream">The stream to output YAML to.</param> /// <param name="settings">The settings to use to generate YAML. If null, a default <see cref="SerializerSettings"/> will be used.</param> public void WriteTo(Stream stream, SerializerSettings settings) { if (stream == null) throw new ArgumentNullException(nameof(stream)); using (var streamWriter = new StreamWriter(stream)) { WriteTo(streamWriter, DefaultSettings); } }
/// <summary> /// Initializes a new instance of the <see cref="Serializer"/> class. /// </summary> /// <param name="settings">The settings.</param> public Serializer(SerializerSettings settings) { this.settings = settings ?? new SerializerSettings(); TypeDescriptorFactory = CreateTypeDescriptorFactory(); RoutingSerializer routingSerializer; ObjectSerializer = CreateProcessor(out routingSerializer); RoutingSerializer = routingSerializer; }
public void NotSpecifyingObjectFactoryUsesDefault() { var settings = new SerializerSettings(); settings.RegisterTagMapping("!foo", typeof(FooBase)); var serializer = new Serializer(settings); var result = serializer.Deserialize(new StringReader("!foo {}")); Assert.IsInstanceOf<FooBase>(result); }
/// <summary> /// Initializes a new instance of the <see cref="SerializerContext"/> class. /// </summary> /// <param name="serializer">The serializer.</param> /// <param name="serializerContextSettings">The serializer context settings.</param> internal SerializerContext(Serializer serializer, SerializerContextSettings serializerContextSettings) { Serializer = serializer; settings = serializer.Settings; tagTypeRegistry = settings.AssemblyRegistry; ObjectFactory = settings.ObjectFactory; ObjectSerializerBackend = settings.ObjectSerializerBackend; Schema = Settings.Schema; ObjectSerializer = serializer.ObjectSerializer; typeDescriptorFactory = serializer.TypeDescriptorFactory; contextSettings = serializerContextSettings ?? SerializerContextSettings.Default; }
public void ObjectFactoryIsInvoked() { var settings = new SerializerSettings() { ObjectFactory = new LambdaObjectFactory(t => new FooDerived(), new DefaultObjectFactory()) }; settings.RegisterTagMapping("!foo", typeof(FooBase)); var serializer = new Serializer(settings); var result = serializer.Deserialize(new StringReader("!foo {}")); Assert.IsInstanceOf<FooDerived>(result); }
/// <summary> /// Writes the content of this YAML node to the specified writer. /// </summary> /// <param name="writer">The writer to output YAML to.</param> /// <param name="settings">The settings to use to generate YAML. If null, a default <see cref="SerializerSettings"/> will be used.</param> public void WriteTo(TextWriter writer, SerializerSettings settings) { if (writer == null) throw new ArgumentNullException(nameof(writer)); var preferredIndent = (settings ?? DefaultSettings).PreferredIndent; yamlStream.Save(writer, true, preferredIndent); writer.Flush(); }