IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

lister le contenu d'une dll


Sujet :

C#

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 69
    Points : 30
    Points
    30
    Par défaut lister le contenu d'une dll
    Bonjour,

    J'aimerais faire le chose suivante (de manière dynamique) :
    -créer une dll, lire son contenu et éventuellement la charger en mémoire si elle convient

    Ainsi j'utilise CSharpCodeProvider pour créé ma dll (avec notament compilerParameters.GenerateInMemory = false; pour ne pas charger en mémoire).
    Avec cette nouvelle dll de chargée, je voudrais regarder les types qu'elle définit et si aucun des types définis n'a déja été chargé en mémoire alors je charge cette dll en mémoire avec Assembly.LoadFrom(path);

    Mais comment connaitre les types définis dans la dll ? A priori la réflection me permet de lire un assembly mais pas une dll. Peut-on créer un assembly à partir de la dll sans le charger en mémoire ?

  2. #2
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Citation Envoyé par duaner Voir le message
    A priori la réflection me permet de lire un assembly mais pas une dll.
    Il me semble que tu devrais revoir les bases de .NET

    Tout code .NET EST une assemble donc même une DLL écrite en .NET

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 69
    Points : 30
    Points
    30
    Par défaut
    Tout code .NET EST une assemble donc même une DLL écrite en .NET
    Ok autant pour moi...
    Et donc du coup pour gérer un fichier .dll en tant qu'assembly, je fait comment ? Assembly.Load(path) ? Mais cela va le charger en mémoire, non? Comment faire pour ne pas le charger en mémoire, je veux juste pouvoir lire ce qu'il y a dedans.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    547
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 547
    Points : 627
    Points
    627
    Par défaut
    Salut,

    tu dois le charger pour savoir ce qu'il y dedans. Apres tu peux le charger en reflection only si tu le souhaites, de memoire Assembly.ReflectionOnlyLoad(string), qui chargera les infos de types sans resoudre les dependances et sans rendre le code executable. Si tu souhaites travailler ensuite avec cet assembly, il faudra le loader concretement (.Load() ).

Discussions similaires

  1. [DLL] Afficher le contenu d'une dll dans un Tpanel
    Par Fabs dans le forum Composants VCL
    Réponses: 4
    Dernier message: 17/08/2007, 14h30
  2. Lire les fonctions contenues dans une DLL
    Par uranium-design dans le forum Windows
    Réponses: 5
    Dernier message: 06/09/2006, 11h47
  3. [MySQL] Lister le contenu d'une table dans un tableau HTML
    Par carmen256 dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 03/04/2006, 19h40
  4. Voir le contenu d'une dll
    Par david71 dans le forum Windows
    Réponses: 7
    Dernier message: 10/12/2005, 21h34
  5. Lister le contenu d'une table sans connaitre ses champs
    Par Google.be dans le forum PostgreSQL
    Réponses: 9
    Dernier message: 30/03/2004, 15h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo