Serialization and deserialization. To write this article I was using this web page. First lets serialize the XML. Idea is to create xml like

<?xml version="1.0" encoding="utf-8"?>
<definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <channels>
    <channel>
      <urn>test</urn>
    </channel>
  </channels>
</definitions>

So, first we have to prepare model, and looks like:

public class definitions
{
	public List<channel> channels { get; set; }
}

public class channel
{
	public string urn { get; set; }
}

Now serialization:

definitions serializeObject = new definitions();
channel channel = new channel();
channel.urn = "test";
serializeObject.channels = new List<channel>();
serializeObject.channels.Add(channel);

XmlSerializer xmlSerializer = new XmlSerializer(typeof(definitions));
TextWriter txtWriter = new StreamWriter(@"d:\temp\MyTest.xml");
xmlSerializer.Serialize(txtWriter, serializeObject);
txtWriter.Close();

That is all about serialization. Now we well deserialize same XML:

XmlSerializer xmlSerializer = new XmlSerializer(typeof(definitions));
using (FileStream fileStream = File.OpenRead(@"d:\temp\MyTest.xml"))
{
	definitions channelDefinitions = (definitions)xmlSerializer.Deserialize(fileStream);
	ChannelModels = channelDefinitions.channels;
}

Example project you can download from here.

That's all folks!