Comment puis-je désérialiser des données XML dans un objet à l'aide d'un constructeur qui prend un XDocument?

J'ai une classe:

public class MyClass
{
   public MyClass(){}
}

Je voudrais être en mesure d'utiliser un XMLSeralizer Désérialiser un XDocument directement dans le constructeur ainsi:

public class MyClass
{
   private XmlSerializer _s = new XmlSerializer(typeof(MyClass));

   public MyClass(){}
   public MyClass(XDocument xd)
   {
      this = (MyClass)_s.Deserialize(xd.CreateReader());
   }
}

Sauf que je ne suis pas autorisé à céder à "cela" dans le constructeur.

Est-ce possible?

Pour quelle raison vous voulez le faire comme ça?
Parce que ce serait bien d'instancier la classe et vient nourrir un XDocument et l'avoir défini lui-même comme ça. Il y a d'autres solutions, mais cela semble plus élégante pour moi... je suis ouvert à de meilleures suggestions.
Ne peut-on pas définir la classe d'avoir des données sérialisées en elle, donc la création de l'instance pour vous?

OriginalL'auteur One Monkey | 2011-10-26