Non riesco a trovare un modo per fare quanto riportato qui sotto in maniera semplice.

Ho un'oggetto, anche molto semplice come ad esempio questo:

codice:
public class Item { public string Name { get; set; } }
E ho bisogno di:

1) Creare il relativo documento XML (serializzazione):

codice:
<?xml version="1.0" encoding="utf-8"?>
<Items>
  <Item Name="Item1"/>
  <Item Name="Item2"/>
</Items>

2) Leggere il documento:

codice:
 
for each NodeT node in MyXMLDocument
{
    Item i = new Item(node);
}
Il che in pratica corrisponde a deserializzare il documento.

3) Gestire il documento, quindi per esempio eliminare "Item1", creare "Item3", ed avere la possibilità di modificare gli attributi.

codice:
 
<?xml version="1.0" encoding="utf-8"?>
<Items>
  <Item Name="Item2"/>
  <Item Name="Item3"/>
</Items>
Come posso risolvere queste 3 richieste. Grazie.
Potete rispondere sia in C# che in VB.NET