Table of Contents

Class XmlCopyOptions

Namespace
Cuemon.Extensions.Xml
Assembly
Cuemon.Extensions.Xml.dll

Configuration options for XmlWriter.

public class XmlCopyOptions : DisposableOptions, IParameterObject
Inheritance
XmlCopyOptions
Implements
Inherited Members
Extension Methods

Examples

The following example demonstrates how to use XmlCopyOptions to configure settings when copying XML content.

using System;
using System.IO;
using System.Xml;
using Cuemon.Extensions.Xml;

namespace MyApp.Examples;

public class XmlCopyOptionsExample
{
    public void CopyXmlWithCustomSettings()
    {
        // Configure writer settings for indentation and encoding
        var copyOptions = new XmlCopyOptions
        {
            WriterSettings = settings =>
            {
                settings.Indent = true;
                settings.IndentChars = "  ";
                settings.OmitXmlDeclaration = false;
                settings.NewLineOnAttributes = false;
            }
        };

        // Use the options to configure an XmlWriter during a copy operation
        string input = @"<root><item id=""1"">text</item></root>";

        using (var reader = XmlReader.Create(new StringReader(input)))
        using (var writer = XmlWriter.Create(Console.Out, ConfigureWriter(copyOptions)))
        {
            writer.WriteNode(reader, false);
        }
        // Output:
        // <?xml version="1.0" encoding="..."?>
        // <root>
        //   <item id="1">text</item>
        // </root>
    }

    private static XmlWriterSettings ConfigureWriter(XmlCopyOptions options)
    {
        var settings = new XmlWriterSettings();
        options.WriterSettings?.Invoke(settings);
        return settings;
    }

    public void UseDefaults()
    {
        // Default options have null WriterSettings (no custom configuration)
        var options = new XmlCopyOptions();
        Console.WriteLine($"WriterSettings: {(options.WriterSettings == null ? "null (no customization)" : "configured")}");
    }
}

Constructors

XmlCopyOptions()

Initializes a new instance of the XmlCopyOptions class.

public XmlCopyOptions()

Properties

WriterSettings

Gets or sets the XmlWriterSettings which will be applied doing the copying process and need to be configured.

public Action<XmlWriterSettings> WriterSettings { get; set; }

Property Value

Action<XmlWriterSettings>

The writer settings.