Accé à la methode de ma classe [Résolu]

Signaler
Messages postés
186
Date d'inscription
mercredi 14 mars 2007
Statut
Membre
Dernière intervention
11 avril 2011
-
Messages postés
834
Date d'inscription
samedi 15 novembre 2008
Statut
Membre
Dernière intervention
14 janvier 2017
-
Bonjours à tous,



<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
 




Je suis entrain de développer une application en c# , mon projet contient deux solutions


(CodeBase et Presentation)


Dans la partie Code Base j’ai créé un répertoire (namespace) dans la partie CodeBase et j’y rajouté une classe que j’ai appelé « OFileSelector » permettant de rendre le chemin du fichier sélectionné à partir d’un OpenFileDialog.



 




Dans la partie présentation j’ai appelé la méthode de ma classe « OFileSelector »  mais lors de compilation il m’affiche le message d’erreur :


Erreur  6          Le type ou le nom d'espace de noms 'OFileSelector' n'existe pas dans l'espace de noms 'myrep…' (Une référence d'assembly est-elle manquante ?).



 




J’ai rajouté la référence   (using System.Windows.Forms), dans le menu contextuel il me propose bien OfileSelector et la methodeReturnFilePath


mais ça affiche toujours la même erreur .



Voici les ligne de mon code.





OFileSelector
fs = newOFileSelector();





mavar
= fs.ReturnFilePath(); (avec ReturnFilePath et la methde de ma classe
OfileSelector)







si vous avez une idée





merci pour votre aide...

10 réponses

Messages postés
834
Date d'inscription
samedi 15 novembre 2008
Statut
Membre
Dernière intervention
14 janvier 2017
28
Bonsoir,

un peu touffu ton explication ;-)
mais l'erreur peut venir de 2 sources:
- la classe que tu veux utiliser fait partie d'un namespace different de la classe appelante, et il manque une clause using avec le namespace de la classe appelée.
- le code de la classe tu tu veux utiliser est situé dans une DLL qui ne fait pas partie des reference du projet appelant, (clique droit sur reference -> ajouter une reference -> rechercher la DLL implementant la classe)

C# is amazing, enjoy it!
Messages postés
186
Date d'inscription
mercredi 14 mars 2007
Statut
Membre
Dernière intervention
11 avril 2011
1
Bonsoir,


 <?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>


Ma classe appelée est situé dans un namespace X.Y.DoneeReseau


 


Voici sa définition :


using System;


using System.Collections.Generic;


using System.Linq;


using System.Text;


 


 


namespace X.Y.DonneesReseau


{



    public sealed class OFileSelector



    {



       



        public string  ReturnFilePath()



        {



          



            System.Windows.Forms.OpenFileDialog OpenFile = new OpenFileDialog();



            OpenFile.Title = "Associer un document externe ...";



            if (OpenFile.ShowDialog() == System.Windows.Forms.DialogResult.OK)



            {



                return OpenFile.FileName;



            }


 



        }



    }


}


 


dans la classe appelante j’ai bien rajouté le namespace X.Y.DonneesReseau …


 


j’appelle la méthode ReturnFilePath en faisant :


 


OfileSelector fs = new OfileSelector() ;


 


Var = fr. ReturnFilePath() ;


 


Mai lors de la compilation il m’affiche toujours la même erreur :


Le type ou le nom d'espace de noms 'OFileSelector' n'existe pas dans l'espace de noms X.Y.DonneesReseau' (Une référence d'assembly est-elle manquante ?).


 



  Merci pour votre aide...
Messages postés
834
Date d'inscription
samedi 15 novembre 2008
Statut
Membre
Dernière intervention
14 janvier 2017
28
Bonsoir,

Les 2 classes font-elles partie du même assembly ?

C# is amazing, enjoy it!
Messages postés
186
Date d'inscription
mercredi 14 mars 2007
Statut
Membre
Dernière intervention
11 avril 2011
1
Je comprend pas trop la notion d'assembly


En fait ma solution est composé de 2 projets un pour la présentation formulaires et codes de événement et un pour les classes de BLL et accès aux données.


 <?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>


Dans moi depuis l'événement click de mon bouton j'appelle la méthode de ma classe  (ReturnFilePath)
Messages postés
186
Date d'inscription
mercredi 14 mars 2007
Statut
Membre
Dernière intervention
11 avril 2011
1
Je comprend pas trop la notion d'assembly


En fait ma solution est composé de 2 projets un pour la présentation formulaires et codes de événement et un pour les classes de BLL et accès aux données.


 <?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>


Dans moi depuis l'événement click de mon bouton j'appelle la méthode de ma classe  (ReturnFilePath)



Merci pour votre aide
Messages postés
186
Date d'inscription
mercredi 14 mars 2007
Statut
Membre
Dernière intervention
11 avril 2011
1
Bonjour,


J’ai essayé de rajouter la référence de ma classe appelée dans l’assembly de la classe appelante mais il me propose que des .dll…   or la classe que je voulais appeler soit type  .cs



<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
 
Messages postés
186
Date d'inscription
mercredi 14 mars 2007
Statut
Membre
Dernière intervention
11 avril 2011
1
Bonjour !


Les 2 classes ne sont pas dans le même assembly,



<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
 




Quand j’essaye de rajouter une référence (référence => ajouter) pour rajouter ma classe appelée  dans l’assembly de la classe appelante il me propose des .DLL,… alors que ma classe est de type .cs  
Messages postés
834
Date d'inscription
samedi 15 novembre 2008
Statut
Membre
Dernière intervention
14 janvier 2017
28
Bonjour
Oui les références sont des DLL, il faut que tu choisisses la DLL generée par ton projet.
Mais dans visual studio; lorsque tu ajout une référence tu as le choix d'ajouter une référence depuis ta solution, visual studio va alors te proposer la liste de tes projets de ta solution générant une DLL referençable, choisi donc celui qui contient ta classe, visual studio fera le reste.

C# is amazing, enjoy it!
Messages postés
186
Date d'inscription
mercredi 14 mars 2007
Statut
Membre
Dernière intervention
11 avril 2011
1
Bonjour,



<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
 




Merci pour ta réponse, en fait j’ai rajouté dans le projet qui contient la classe appelante (publicpartialclass xxx: Form) la référence du projet qui contient la classe appelé (X.Y.CodeBase)


Mais l’erreur est toujours la même    L
Messages postés
834
Date d'inscription
samedi 15 novembre 2008
Statut
Membre
Dernière intervention
14 janvier 2017
28
Bonsoir,

ben là il faudrait que j'ai les 2 projets pour voir.
Car il n'y a vraiment aucune raison, on fait ça tous les jours.

C# is amazing, enjoy it!