Recuperer des paramatre dans des Class

Résolu
MatHack_74 Messages postés 17 Date d'inscription vendredi 23 mars 2007 Statut Membre Dernière intervention 31 août 2009 - 31 août 2009 à 02:44
MatHack_74 Messages postés 17 Date d'inscription vendredi 23 mars 2007 Statut Membre Dernière intervention 31 août 2009 - 31 août 2009 à 12:26
Bonjour à tous.

J'ai une question est je ne connais pas trop le terme et j'aimerais en même temps le savoir.

J'ai crée une Class ou je charge un XML :

         
    class LoadingXml
    {
        public void LoadingUserOnline
        {
            XmlDocument xmlUserOnline = new XmlDocument();
            try
            {
                //Local
                xmlUserOnline.Load("xmlOnline.xml");
            }
            catch (Exception elang)
            {
                MessageBox.Show("Erreur");
            }
        }
    }


Maintenant dans mon code principale j'aimerais bien récupérer l'appelle "xmlOnline" pour faire ça :

Utilisation de la Class :
             LoadingXml XmlLoading = new LoadingXml();
             XmlLoading.LoadingUserOnline();

             
             XmlNode root = xmlOnline.DocumentElement;
             int nUser = xmlOnline.GetElementsByTagName("User").Count;



Mais le problème c'est que il ne connais pas le xmlOnline car il est que dans la class je ne c'est pas trop si c'est possible
ou comment le récupérer car sa me ferait une belle optimisation de code car à chaque fois dans les fonction le charger sa viens lourd sur le code.

Merci de vos réponse.

5 réponses

ed73 Messages postés 276 Date d'inscription lundi 8 septembre 2008 Statut Membre Dernière intervention 15 avril 2013 2
31 août 2009 à 10:34
Bonjour,

Tu as plusieurs possibilités, par exemple :

- Déclarer xmlUserOnline comme variable membre de ta classe.
- Déclarer la fonction LoadingUserOnline comme retournant un XmlDocument.

public XmlDocument LoadingUserOnline
{
XmlDocument xmlUserOnline = new XmlDocument();
...
return xmlUserOnline;
}


XmlDocument doc = LoadingUserOnline();

int nUser = doc.GetElementsByTagName("User").Count;
3
ed73 Messages postés 276 Date d'inscription lundi 8 septembre 2008 Statut Membre Dernière intervention 15 avril 2013 2
31 août 2009 à 12:07
Il faut d'abord instancier ta classe :

LoadingXml xml = new LoadingXml();

XmlDocument xmlUser = xml.LoadingUserOnline();
3
MatHack_74 Messages postés 17 Date d'inscription vendredi 23 mars 2007 Statut Membre Dernière intervention 31 août 2009
31 août 2009 à 02:46
Je me suis tromper et je ne trouve pas le bouton d'édition :

           XmlNode root = xmlUserOnline.DocumentElement;

           int nUser = xmlUserOnline.GetElementsByTagName("User").Count;

0
MatHack_74 Messages postés 17 Date d'inscription vendredi 23 mars 2007 Statut Membre Dernière intervention 31 août 2009
31 août 2009 à 11:55
Merci ed73 cella repond à ma question, mais j'en ai une autre mais sa doit etre la meme chose mais le code qui change :

Si j'ai ma class dans un fichier de class "LoadingXml.cs" et dedans j'ai :

    
    class LoadingXml
    {
        public XmlDocument LoadingUserOnline()
        {
            XmlDocument xmlUserOnline = new XmlDocument();
            try
            {
                xmlUserOnline.Load("UserOnline.xml");
            }
            catch (Exception errXmlUserOnline)
            {
                MessageBox.Show("Erreur");
            }
            return xmlUserOnline;
        }
    }


Et dans la form1 je tape :

XmlDocument xmlUser = LoadingUserOnline(); 

int nUser = xmlUser.GetElementsByTagName("User").Count; 


La premiere ligne a un probleme je pensse qu'il la vois pas comment faire c'est peut être tres bete mais les class je commence seulement à vraiment les utiliser pour organiser mon code.

Merci de vos réponse.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
MatHack_74 Messages postés 17 Date d'inscription vendredi 23 mars 2007 Statut Membre Dernière intervention 31 août 2009
31 août 2009 à 12:26
Que dire de plus à par un grand Merci
0
Rejoignez-nous