Articles
The serializer provides fast methods for serialize or deserialize a stored XML file to and from an object.

Usage
<UserControl x:Class="DW.SharpTools.Demo.SerializerControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300">
<DockPanel Margin="5">
<StackPanel Orientation="Horizontal" DockPanel.Dock="Bottom" HorizontalAlignment="Center">
<Button Content="Serialize" Click="Serialize_Click" />
<Button Content="Deserialize" Click="Deserialize_Click" />
</StackPanel>
<TextBox Margin="0,0,0,5" x:Name="xmlDocument" IsReadOnly="True" />
</DockPanel>
</UserControl>
using System.Windows;
using System.Windows.Controls;
using Microsoft.Win32;
namespace DW.SharpTools.Demo
{
public partial class SerializerControl : UserControl
{
public SerializerControl()
{
InitializeComponent();
xmlDocument.Text = GetXml();
}
private static string GetXml()
{
return "<?xml version=\"1.0\" encoding=\"utf-16\"?>\n" +
"<Libraries xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n" +
" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">\n" +
" <Name>David W</Name>\n" +
" <Website>www.my-libraries.de</Website>\n" +
"</Libraries>";
}
private void Serialize_Click(object sender, RoutedEventArgs e)
{
var data = new Data();
data.Name = "David W";
data.Website = "www.my-libraries.de";
var saveFileDialog = new SaveFileDialog { Filter = "XML File (*.xml)|*.xml" };
if (saveFileDialog.ShowDialog() == true)
XmlTools.Serializer.Serialize(data, saveFileDialog.FileName);
}
private void Deserialize_Click(object sender, RoutedEventArgs e)
{
var openFileDialog = new OpenFileDialog { Filter = "XML File (*.xml)|*.xml" };
if (openFileDialog.ShowDialog() == true)
{
var data = XmlTools.Serializer.Deserialize<Data>(openFileDialog.FileName);
}
}
}
}
using System.Xml.Serialization;
namespace DW.XmlTools.Demo
{
[XmlRoot("Libraries")]
public class Data
{
[XmlElement]
public string Name { get; set; }
[XmlElement]
public string Website { get; set; }
}
}