2009-11-18 7 views
1

Probablement une question stupide, mais je suis assez nouveau pour l'ensemble de la programmation "get-and-set-property";Conversion implicite de void en XmlDocument

Je continue d'obtenir une erreur de compilation sur cette partie de mon code;

private string _File = "Session.xml"; 

private XmlDocument XmlDoc 
{ 
    get 
    { 
     XmlDocument _Doc = new XmlDocument(); 
     return _Doc.LoadXml(_File); 
    } 
} 

private XmlElement XmlRoot 
{ 
    get 
    { 
     return XmlDoc.DocumentElement; 
    } 
} 

Comment ça marche? Je ne peux pas m'expliquer cela car je ne vois même pas de conversions implicites ...

Répondre

1

Ce code est votre problème:

return _Doc.LoadXml(_File); 

La méthode LoadXml a un type de retour de void, la méthode ne renvoie aucune valeur, peuplant la place du XmlDocument instance à partir du chemin de fichier spécifié.

Pour résoudre votre problème, il suffit de changer votre propriété à ceci:

private XmlDocument XmlDoc 
{ 
    get 
    { 
     XmlDocument _Doc = new XmlDocument(); 
     _Doc.LoadXml(_File); 
     return _Doc; 
    } 
} 
+0

Oh boy, qui était si évident ... Zut -.- –

2

_Doc.LoadXml (_File); retourne void et non XmlDocument. Changer votre code:

private XmlDocument XmlDoc 
{ 
    get 
    { 
     XmlDocument _Doc = new XmlDocument(); 
     _Doc.LoadXml(_File); 
     return _Doc; 
    } 
} 
4

Le problème est cette ligne:

return _Doc.LoadXml(_File); 

Vous essayez de retourner une valeur à partir d'une méthode qui a un type de retour de void.

Essayez ceci:

private XmlDocument XmlDoc 
{ 
    get 
    { 
     XmlDocument _Doc = new XmlDocument(); 
     _Doc.LoadXml(_File); 
     return _Doc; 
    } 
} 
Questions connexes