begin process at 2010 02 10 07:42:07
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

.NET

 > CHARGER UNE ASSEMBLY DANS LE CODE

CHARGER UNE ASSEMBLY DANS LE CODE


 Information sur la source

Note :
10 / 10 - par 2 personnes
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :.NET Source .NET ( DotNet ) Classé sous :assembly, charger Niveau :Initié Date de création :29/01/2004 Date de mise à jour :29/01/2004 21:27:36 Vu / téléchargé :9 930 / 279

Auteur : gg00xiv

Ecrire un message privé
Site perso
Commentaire sur cette source (12)
Ajouter un commentaire et/ou une note

 Description

Ces quelques lignes de code vont vous permettre de charger une assembly en mémoire et appeler une méthode d'une classe si trouvant.
Cela peut être utile si vous devez transférer des assembly via le réseau par exemple et ensuite les ouvrir.
Comme on n'a pas l'assembly avec nous au moment de la compilation, il nous est impossible de la lier via l'ajout d'un référence.

Si on veut, ces lignes font la même chose que l'ajout d'une référence à un projet.

Source

  • using System.Reflection;
  • ...
  • Assembly a = Assembly.LoadFile(Environment.CurrentDirectory + "\\MyAssembly.dll");
  • object myClass = a.CreateInstance("MyAssembly.MyClass",false,BindingFlags.CreateInstance,null,new object[]{"gg00xiv"},System.Globalization.CultureInfo.InstalledUICulture,null);
  • string name = (string)myClass.GetType().InvokeMember("Name",BindingFlags.GetProperty,null,myClass,null);
  • Console.WriteLine(name);
  • Console.ReadLine();
using System.Reflection;
...

Assembly a = Assembly.LoadFile(Environment.CurrentDirectory + "\\MyAssembly.dll");

object myClass = a.CreateInstance("MyAssembly.MyClass",false,BindingFlags.CreateInstance,null,new object[]{"gg00xiv"},System.Globalization.CultureInfo.InstalledUICulture,null);

string name = (string)myClass.GetType().InvokeMember("Name",BindingFlags.GetProperty,null,myClass,null);

Console.WriteLine(name);

Console.ReadLine();

 Conclusion

J'ai présenter ce code dans une application console, car il n'y avait pas nécessité d'une interface graphique pour cet exemple.

Si ce code n'est pas clair, postez vos questions sur cette source, j'y répondrais.

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip Source .NET (Dotnet) XMLSERIALIZER ET FICHIERS DE CONFIG
Source avec Zip Source avec une capture Source .NET (Dotnet) COMPOSANT D'AUTHENTIFICATION SQLSERVER
Source avec Zip Source avec une capture Source .NET (Dotnet) PROGRESSBAR STYLE NETSCAPE
Source avec Zip Source avec une capture Source .NET (Dotnet) DATABINDING POUR AFFICHER/EDITER UN FORMULAIRE DE DONNÉES
Source avec Zip Source .NET (Dotnet) CAPTURE D'ECRAN "EN .NET"

 Sources de la même categorie

Source avec Zip CHAT SERVER-CLIENT par abderrahmenbilog
Source avec Zip Source avec une capture Source .NET (Dotnet) SIMULATION DE CONSOLE POUR WINDOWS MOBILE par originalcompo
Source avec Zip Source .NET (Dotnet) BASE DE DONNÉES EN XML par DanMor498
Source avec Zip Source avec une capture Source .NET (Dotnet) SIMPLECONV - APPLICATION DE CONVERSION MONÉTAIRE AVEC TAUX E... par Jeffrey_
Source avec Zip Source .NET (Dotnet) TRAITEUR D'IMAGE (MINI) par ycyril

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture Source .NET (Dotnet) EXEMPLE CHARGEMENT D'UNE IMAGE DEPUIS LE DISQUE DUR SILVERLI... par silverressources
Source avec Zip Source .NET (Dotnet) CIPHER: UNE DLL POUR CRYPTER DES FICHIERS AVEC .NET par Romano58
Source avec Zip Source .NET (Dotnet) APPELER UNE MÉTHODE PRIVATE D'UNE CLASSE INTERNAL À PARTIR D... par jesusonline
Source avec Zip Source avec une capture Source .NET (Dotnet) PLUGIN PROGRAMME EXTENSIBLE GRÂCE AUX MODULES par badrbadr
Source .NET (Dotnet) EXTRACTION DE RESSOURCES D'UN ASSEMBLY, ET ENVOI VERS UN FIC... par yoannd

Commentaires et avis

Commentaire de coq le 29/01/2004 22:18:57 administrateur CS

alors ça c'est le genre de chose qu'il est bon de savoir
merci

Commentaire de Crazyht le 30/01/2004 07:41:25 administrateur CS

Et wi c'est la technique a employer aussi pour faire des plug in :)

Bonne astuce :)

Commentaire de gg00xiv le 30/01/2004 17:16:29

merci :)

Commentaire de smoundangha le 02/02/2004 09:13:24

salut gg!
Dejà, merci d'avoir pour les reponses que tu apportais à mes questions. Maintenant j'en sais un peu plus sur c# et j'aimerais en faire profiter les autres.
Pourrais tu, stp, me dire comment je fais por voir les questions posées sur le site et y repondre (je trouve pas le lien sur le site)?
thanx

Commentaire de TheSaib le 02/02/2004 12:48:55 administrateur CS

C'est con c'etais déjà présent sur le site :>

Commentaire de TheSaib le 02/02/2004 12:52:13 administrateur CS

http://www.csharpfr.com/code.aspx?ID=11461

C'est pareil avec la compilation en plus !! ROFL

Commentaire de gg00xiv le 02/02/2004 15:13:16

Euh, c'est pas la peine de le prendre mal. J'ai fais une recherche sur le site sur Assembly et j'ai rien trouvé.
De plus il existe de nombreuses sources sur ce site now ce qui rends les colisions un peu plus fréquentes.

En regardant ton source je vois aussi que tu n'a pas mis de code de présentation donc si j'étais tombé dessus j'aurais pu ne pas m'apercevoir que cela parler de la même chose. Je ne peux pas ouvrir non plus tous les fichiers zip pour voir si le code que je souhaite poster existe deja autre part.

Si en dernier recours t'a trop la haine de voir la "même" source que la tienne postée par un autre, ben demande à l'admin, si tu n'en ai pas un toi même, de le supprimer.

Cordialement,
gg00xiv

Commentaire de TheSaib le 02/02/2004 15:21:12 administrateur CS

lol , je ne l'ai pas pris mal , c'était juste une information ...
Enfin je vois que toi tu l'as mal pris j'en suis désolé , ce n'étais pas le but de ma remarque !

++
Thesaib

Commentaire de gg00xiv le 02/02/2004 15:26:09

Il y a plein de sources traitant du même sujet sur le site, mais chacune exprimée d'un point de vue différent, ce qui peut parfois apporter un peu plus au lecteur.

Oublions ce malentendu.

Commentaire de coq le 02/02/2004 15:31:36 administrateur CS

lol
apres tout, mieux vaut trop d'exemples que pas assez

Commentaire de alexandre7g le 13/04/2007 16:40:38

Bjr,

Je suis très intéressé par ce source pour eviter un réferencement assisté par visual studio et pour les plug in.

J'ai juste un peu de mal:pas bcp d'expérience c#...

1/'MyAssembly' = ma dll?
2/'gg00xiv': ca c'est l'argument pour la creation de ton objet?
3/'string name = (string)myClass.GetType().InvokeMember("Name",BindingFlags.GetProperty,null,myClass,null);' :sert a koi cette ligne?
4/c koi 'name'?

dsl s'il y a bcp de questions...

Commentaire de alexandre7g le 16/04/2007 13:35:17

Finalement j'ai résolu mes pb tout seul.
1/MyAssembly ets le nom du namespace
2/'gg00xiv' c'est bien l'argument pour la création de l'objet
3/'string name = (string)myClass.GetType().InvokeMember("Name",BindingFlags.GetProperty,null,myClass,null);' cette ligne utilise une méthode de la classe et récupère le résultat
4/ "Name" c'est le nom de la méthode appelée

voila pour ceux qui serait intéressé...

Pour les experts:Peut on faire de l'introspection (réflexion) avec des DLL en C++ Managé (des wrappers de C++ natif pour être plus précis)?

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Libérer une assembly [ par mathsfin ] Bonjour, Je voudrais savoir comment on peut libérer une assembly. Le code qui me permet de charger mon assembly est le suivant :Assembly myassembly CHARGER LES DONNÉES D'UNE TABLE DANS UN COMOBOX [ par madrid79 ] BONJOUR? comment faire pour pour avoir dans un comobox tout les donnée d'un colonne d'une table A. merci Signature d'assembly [ par watoubilly ] J'ai du mal a comprendre à quoi sert la signature d'un assembly si ce n'est le coup de la clé privé clé public.Est-ce que ça vaut le coup de le faire could not load file or assembly'crystaldecisions.crystalreports.engine [ par hicham_899 ] Salut après  la génération de setup d'une application  sur C#.net, j'ai l'installer sur une machine tactile, l'application fonctionne bien mais le pro Comparaison de signature [ par TeBeCo ] Je suis actuellement confronté à un problème dans mon code :admettons que je devellope un Assembly A en version 1.0 qui est signé avec la clé Akje dep probleme de connexion a une base de données foxpro [ par cudenetf ] bonjour, je ne sais pas si je suis dans la bonne sectionj'aimerais pouvoir acceder a des tables foxpro (dbase 3 il me semble) a partir d'un programme Problème de processus : Récupérer des données d'un processus A pour les envoyer dans un processus B [ par MasterShadows ] Bonjour à tous et à toutes,Je développe en ce moment même un designer pour créer des interfaces graphiques en XML pour XNA.Mon programme se divise en Erreur envoi mail [ par doctanks ] Bonjour,Voila je tente d'envoyer un mail par l'intermédiaire d'un petit logiciel mais lors de l'envoi je reçois le message: "Une exception non gérée s XmlConfigurator [ par csharp2 ] Bonjour, Comment se fait-il que je n'ai pas le membre XmlConfigurator dans la dll log4net que j'ai téléchargé à partir du site logging.apache.org, car Plusieurs assembly [ par watoubilly ] Bonjour,je fais du C# depuis qq mois et la notion d'Internal me plait bien. Par contre comment peut on avoir plusieurs assembly dans un seul projet ?


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,045 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales