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
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.