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 :

GetReferencedAssemblies ne me liste pas tout


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2005
    Messages
    700
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juin 2005
    Messages : 700
    Par défaut GetReferencedAssemblies ne me liste pas tout
    Bonjour/bonsoir.

    J'ai du rater une marche...
    Je voudrai lister les assemblies dont je dépend dans mon programme.

    J'ai fais un test: solution console vierge
    J'y ajoute un projet librairie de classe (ClassLibrary1)
    et je met ca dans mon main :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     static void Main()
            {
                Assembly curAss = Assembly.GetEntryAssembly();
                AssemblyName[] refAssnames = curAss.GetReferencedAssemblies();
                System.Console.WriteLine("Liste des Assemblies chargées:");
                foreach (AssemblyName item in refAssnames)
                {
                    Console.WriteLine(String.Format("\tAssembly : {0}",item.Name));
                }
                System.Console.Read();
            }
    et ca m'affiche :
    Liste des Assemblies chargées:
    Assembly : mscorlib
    Assembly : System
    Comment puis je récupérer "ClassLibrary1"?

    N.B : il est important que je puisse lister mes dll, avant meme d'instancier le moindre type qui les compose.

    N.B2 : J'aimerai egalement (vraiment) éviter les bidouilles du genre lister les dll d'un repertoire puis.... vous voyez...

    un grand merci d'avance à celui ou celle qui pourra m'éclairer dans ce bien sombre mystere !

    EDIT : comme je le redoutait, ca ne me liste pas l'assembly ClassLibrary1 tant que je n'instancie pas sa classe Class1. C'est un enorme probleme pour moi. Pourtant ca n'est pas etre cencé etre statiquement chargé?

  2. #2
    Expert confirmé
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Par défaut
    Il me semble qu'une assembly n'est affichée via cette méthode que si elle est utilisée par l'assembly en cours. Je ne suis pas sur de ce que j'avance (pas le temps d'essayer pour l'instant) mais essaye par exemple de créer une fonction bidon et d'y faire quelque chose avec une des classe de ClassLibrary1 et réitère ton test pour voir ...

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2005
    Messages
    700
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juin 2005
    Messages : 700
    Par défaut
    En effet dans ce cas là ca liste.
    Le but de mon opération, est de lister certaines classes qui implémentent une interface, et de vérifier certaines de leur propriétés.

    C'est du au fait qu'on est plusieurs à bosser sur le projet, et ca touche à la sécurité.

    Je ne peut donc pas savoir à l'avance ce que je vais trouver comme classe, et donc encore moins appeller une de leur fonctions pour savoir qu'elles existent

    Concretement, si un dev crée une nouvelle classe qui implemente mon interface, et qu'il ne fait pas ce qu'il faut, au lancement du soft (ainsi que dans des Unit test) il obtiendra immediatement une erreur pour corriger le tir...

    Ne trouvant pas de soluce, je me vois obligé de lister les dll du repertoire d'execution, si quelqu'un (peu rigoureux ou mal intentionné) place une dll dans un autre répertoire, je ne la verrai pas :s ca me traquace.

    Merci pour ta réponse quoi qu'il en soit.

  4. #4
    Expert confirmé
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Par défaut
    Si tu dois vérifier l'intégrité des dlls tu pourrai faire la vérification juste après le chargement de chaque assembly, avant même qu'un code dans celle ci ne soit exécuté.
    cf. AppDomain.AssemblyLoad

Discussions similaires

  1. Réponses: 6
    Dernier message: 21/12/2010, 20h00
  2. Cocher une liste de checkbox mais pas toutes
    Par Equinoxe5 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 17/05/2010, 17h28
  3. [MySQL] Liste déroulante php/sql n'affichant pas toutes les données.
    Par Nicolas_k dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 25/02/2010, 13h01
  4. Scan récursif des répertoire, ça ne liste pas tout
    Par panthere noire dans le forum C++
    Réponses: 0
    Dernier message: 14/04/2009, 01h58
  5. Liste chainée j'ai pas tout compris
    Par SPACHFR dans le forum Débuter
    Réponses: 4
    Dernier message: 13/03/2009, 16h30

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