97 votes

Comment puis-je liste tous les assemblys chargés?

Dans .Net, je voudrais énumérer tous les assemblys chargés sur tous les domaines d'application. Faire pour que mon programme du domaine d'application est assez facile, AppDomain.CurrentDomain.GetAssemblies(). Dois-je en quelque sorte l'accès à chaque domaine d'application? Ou est-il déjà un outil qui fait cela?

92voto

Bogdan Gavril Points 4059

Si vous voulez un outil externe vous pouvez utiliser l'Explorateur de Processus (freeware)

http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx

Cliquez sur le nécessaire et il vous montrera une liste avec toutes les dll utilisées. Depuis le processus contient tous les domaines d'application, cela devrait répondre à votre question.

Par programmation, vérifiez ceci:

Comment vous parcourez actuellement chargé assemblées?

21voto

s15199d Points 900

Voici ce que j'ai fini avec. C'est une liste de toutes les propriétés et méthodes, et j'ai répertorié tous les paramètres de chaque méthode. Je n'ai pas réussi à obtenir toutes les valeurs.

foreach(System.Reflection.AssemblyName an in System.Reflection.Assembly.GetExecutingAssembly().GetReferencedAssemblies()){                      
            System.Reflection.Assembly asm = System.Reflection.Assembly.Load(an.ToString());
            foreach(Type type in asm.GetTypes()){   
                //PROPERTIES
                foreach (System.Reflection.PropertyInfo property in type.GetProperties()){
                    if (property.CanRead){
                        Response.Write("<br>" + an.ToString() + "." + type.ToString() + "." + property.Name);       
                    }
                }
                //METHODS
                var methods = type.GetMethods();
                foreach (System.Reflection.MethodInfo method in methods){               
                    Response.Write("<br><b>" + an.ToString() + "."  + type.ToString() + "." + method.Name  + "</b>");   
                    foreach (System.Reflection.ParameterInfo param in method.GetParameters())
                    {
                        Response.Write("<br><i>Param=" + param.Name.ToString());
                        Response.Write("<br>  Type=" + param.ParameterType.ToString());
                        Response.Write("<br>  Position=" + param.Position.ToString());
                        Response.Write("<br>  Optional=" + param.IsOptional.ToString() + "</i>");
                    }
                }
            }
        }

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X