OVH Cloud OVH Cloud

reflection et chargement d'assembly

3 réponses
Avatar
fab
Bonjour,
je souhaite connaitre les objet d'un asssembly charge
dynamiquement. J'utilise le code suivant ( recuperer sur
le net ) mais cela ne fonctionne pas. Je ne comprend pas
pourquoi. Le barCode.dll est une dll que j'ai code en C#
qui comprend une seule et pauvre classe toute simple
Merci pour votre aide
Fab


Code :
a = System.Reflection.Assembly.LoadFrom("\\Program
Files\\InventairePocket\\BarCode.dll");
Type [] types2 = a.GetTypes ();
foreach (Type t in types2)
{
MessageBox.Show(t.FullName);
}

3 réponses

Avatar
Sébastien Curutchet
A mon avis c'est LoadFrom("Program FilesInventairePocketBarCode.dll")
qu'il n'aime pas. Le chemin n'est ni relatif ni complet.

Rajoute "C:" au début.


--
Sébastien Curutchet
MVP VB (répond aussi aux question .NET et C# : faut bien se reconvertir ;) )
Membre de la communauté dotnet.developpez.com

"fab" a écrit dans le message de
news:464401c48929$a38f04a0$
Bonjour,
je souhaite connaitre les objet d'un asssembly charge
dynamiquement. J'utilise le code suivant ( recuperer sur
le net ) mais cela ne fonctionne pas. Je ne comprend pas
pourquoi. Le barCode.dll est une dll que j'ai code en C#
qui comprend une seule et pauvre classe toute simple
Merci pour votre aide
Fab


Code :
a = System.Reflection.Assembly.LoadFrom("Program
FilesInventairePocketBarCode.dll");
Type [] types2 = a.GetTypes ();
foreach (Type t in types2)
{
MessageBox.Show(t.FullName);
}




Avatar
fab
merci de votre aide. J'arrive a creer une instance de ma
classe. Je precise que je suis sur pocket PC .Par contre,
je n'arrive pas a invoque une methode de cet objet.
J'utilise :
obj1.GetType().InvokeMember
( "affiche",BindingFlags.Default
|BindingFlags.InvokeMethod,BindingFlags.Default,null,obj1,
new object[]{});

ou obj1 est l'objet instancier et affiche le nom de ma
fonction ( public void affiche() {MessageBox.show
("test")}

en bidouillant les flags j'arrive a avoir deux type
d'exeption :
- ArgumentNullException
- ExceptionNoneSupported ( ou un truc du genre)

Je suis perdu, aidez moi svp
Fab





-----Message d'origine-----
Bizarre car ce code

Assembly DLL_a_charger = Assembly.LoadFrom


(Application.StartupPath +
@"Fonction.dll");

// Récupération de l'ensemble


des classes contenues dans l'assembly
Type [] classes =


DLL_a_charger.GetTypes();

foreach ( Type t in classes )
{
MessageBox.Show


(t.FullName);
}

fonctionne bien chez moi....

A voir le chemin que tu utilises, je supposes que tu


travailles sur Pocket
PC ?
Es-tu sûr que le fichier BarCode.dll est bien présent


à l'emplacement que tu
as indiqué ?
Es-ce que tu as une exception de levé ? Si oui,


laquelle ?
Ton fichier BarCode.dll n'est pas vide ?

A+


Thomas LEBRUN.


"fab" wrote:

Bonjour,
je souhaite connaitre les objet d'un asssembly charge
dynamiquement. J'utilise le code suivant ( recuperer




sur
le net ) mais cela ne fonctionne pas. Je ne comprend




pas
pourquoi. Le barCode.dll est une dll que j'ai code en




C#
qui comprend une seule et pauvre classe toute simple
Merci pour votre aide
Fab


Code :
a = System.Reflection.Assembly.LoadFrom("Program
FilesInventairePocketBarCode.dll");
Type [] types2 = a.GetTypes ();
foreach (Type t in types2)
{
MessageBox.Show(t.FullName);
}





.



Avatar
Lebrun Thomas
> A mon avis c'est LoadFrom("Program FilesInventairePocketBarCode.dll")
qu'il n'aime pas.



Oui, c'est pourquoi je demandais si :
- le chemin est bon
- le fichier BarCode.dll est bien présent
- le fichier BarCode.dll n'est pas vide

Par contre, pas besoin du C: car il est sous Pocket PC.

En utilisant un try-catch et en faisant afficher le message de l'exception,
quel est ce message ?

A+

-------------------
Thomas LEBRUN
http://morpheus.developpez.com


"Sébastien Curutchet" wrote:

A mon avis c'est LoadFrom("Program FilesInventairePocketBarCode.dll")
qu'il n'aime pas. Le chemin n'est ni relatif ni complet.

Rajoute "C:" au début.


--
Sébastien Curutchet
MVP VB (répond aussi aux question .NET et C# : faut bien se reconvertir ;) )
Membre de la communauté dotnet.developpez.com

"fab" a écrit dans le message de
news:464401c48929$a38f04a0$
> Bonjour,
> je souhaite connaitre les objet d'un asssembly charge
> dynamiquement. J'utilise le code suivant ( recuperer sur
> le net ) mais cela ne fonctionne pas. Je ne comprend pas
> pourquoi. Le barCode.dll est une dll que j'ai code en C#
> qui comprend une seule et pauvre classe toute simple
> Merci pour votre aide
> Fab
>
>
> Code :
> a = System.Reflection.Assembly.LoadFrom("Program
> FilesInventairePocketBarCode.dll");
> Type [] types2 = a.GetTypes ();
> foreach (Type t in types2)
> {
> MessageBox.Show(t.FullName);
> }
>
>