Lire un arbre XML de la structure de façon récursive dans une Liste<T> avec les enfants des listes<T>

J'ai un XML comme ceci:

Et j'ai un Membre de la classe avec le Nom de la propriété.

Comment puis-je lire toutes les unités et tous ses enfants en Parts de plusieurs génériques List<Unit> qui peuvent avoir à nouveau des enfants List<Unit> dans un façon récursive en utilisant la dernière .NET de la technologie ?

<Root>
  <Units Name="Test1">
    <Unit Name="Test11" />
    <Unit Name="Test12">
      <Unit Name="Test21" />
      <Unit Name="Test22" />
      <Unit Name="Test23">
        <Unit Name="Test31" />
        <Unit Name="Test32" />  
        <Unit Name="Test33" />
      </Unit>
      <Unit Name="Test24" />
    </Unit>
  </Units>
  <Units Name="Test2" />
    <!-- ... -->
  <Units Name="Test3" />
    <!-- ... -->
  <Units Name="Test4" />
</Root>
Aurais pensé que ce était aussi simple de mise en œuvre de la récursivité que vous pourriez obtenir...
mais le code pour traverser un XDoc/XmlDoc est une sorte de lourd. Il est cependant possible. Je suggère de le remplacer avec un Dictionnaire dans ma réponse.

OriginalL'auteur msfanboy | 2011-05-28