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?
Réponses
Trop de publicités?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:
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>");
}
}
}
}