2010-01-27 4 views
0

J'ai chargé un assemblage appelé 'Mscorlib.dll' et je voulais qu'il lise toutes les classes dans le 'Mscorlib', ce qu'il fait (en utilisant la réflexion). Maintenant je veux ajouter une fonction par laquelle l'utilisateur entre une classe de l'assemblée et obtient toutes les méthodes de cette classe.Comment ajouter cette fonction à l'application console

Comment est-ce que je pourrais faire ça? Toute aide serait bien

+0

pourquoi voudriez-vous charger le MSCorLib.dll, C'est la bibliothèque d'exécution pour tous les exécutables .NET et est référencé par défaut mais non montré dans les références dans Visual Studio ... – t0mm13b

+0

Vous pourriez utiliser Net Reflector (une partie de Redgate) pour voir comment en conjonction avec la réponse de Jon ci-dessous pour obtenir le résultats attendus .. – t0mm13b

+0

Bonjour, ce n'est rien de trop sérieux. Je suis en train de pratiquer le codage et comment je peux obtenir de l'information en utilisant la réflexion. Merci pour vos conseils de toute façon. –

Répondre

1

Utilisez Assembly.GetType(type) pour obtenir le Type approprié, puis Type.GetMethods pour obtenir les méthodes à l'intérieur. (Notez que la surcharge qui ne le fait pas prendre un BindingFlags ne retiendra que les méthodes publiques.)

Par exemple (pas de contrôle d'erreur):

Assembly mscorlib = typeof(int).Assembly; 
Console.Write("Type name? "); 
string typeName = Console.ReadLine(); 
Type type = mscorlib.GetType(typeName); 
foreach (MethodInfo method in type.GetMethods()) 
{ 
    Console.WriteLine(method); 
} 
+0

Oui, j'ai déjà fait ce Jon mais maintenant je veux que l'utilisateur recherche dans le mscorlib pour une classe et qui montrera les méthodes de cette classe choisie. Je ne veux pas une liste complète des méthodes pour mscorlib car il semble y avoir trop d'informations. –

+0

Euh, c'est exactement ce que je vous ai montré - notez l'appel à 'Assembly.GetType (string)' plutôt que 'Assembly.GetTypes()'. Appelez simplement GetMethods sur un * type unique * plutôt que sur chaque type dans l'assemblage. –

+0

Cela m'a vraiment aidé à vous remercier! –

Questions connexes