Tengo * .dll escrito con C# y necesito obtener una lista de todos los métodos públicos o las clases contenidas en ese * .dll. ¿Hay alguna forma de hacerlo programáticamente con C#?Cómo recuperar todos los métodos públicos desde * .dll
9
A
Respuesta
2
Use System.Net.Reflection. Las clases de reflexión le permiten consultar los metadatos de los tipos de una DLL en tiempo de ejecución.
Algo así como this.GetType().Assembly.GetTypes();
12
Sí usar Assembly.GetTypes para extraer todos los tipos, y luego usar la reflexión sobre cada tipo de iterar los métodos públicos.
Assembly a = Assembly.LoadWithPartialName("...");
Type[] types = a.GetTypes();
foreach (Type type in types)
{
if (!type.IsPublic)
{
continue;
}
MemberInfo[] members = type.GetMembers(BindingFlags.Public
|BindingFlags.Instance
|BindingFlags.InvokeMethod);
foreach (MemberInfo member in members)
{
Console.WriteLine(type.Name+"."+member.Name);
}
}
4
var assembly = // grab assembly
var types = assembly.GetExportedTypes();
foreach (var type in types) {
var methods = type.GetMethods(BindingFlags.Public);
}
GetExportedTypes volverán todos los tipos públicos en el montaje. Tampoco especificó si solo deseaba métodos de instancia, métodos estáticos o ambos.
Cuestiones relacionadas
- 1. Llamar a los métodos DLL desde Javascript
- 2. iOS: ¿cómo definir los métodos públicos?
- 3. Métodos estáticos públicos vs métodos públicos
- 4. Cómo ocultar los métodos públicos de IntelliSense
- 5. Cómo recuperar todos los grupos desde LDAP con Perl
- 6. ¿Cómo ver solo los métodos públicos en Resharper?
- 7. ¿Debo suprimir CA1062: validar los argumentos de los métodos públicos?
- 8. ¿Cuándo debería usar métodos públicos/privados/estáticos?
- 9. registrar todos los métodos?
- 10. Accediendo a los métodos dll en Java
- 11. ¿Cómo colapsar todos los métodos en XCode?
- 12. Recuperar todos los valores publicados en ASP.NET
- 13. Accediendo a métodos "públicos" desde métodos "privados" en la clase javascript
- 14. Cómo encontrar fácilmente métodos/propiedades públicos no utilizados
- 15. ¿Cómo invoco los métodos en un dll C# desde mi código C?
- 16. métodos públicos en clases privadas de paquete
- 17. Cómo probar campos privados que se modifican mediante métodos públicos
- 18. Cómo recuperar un Subversion externo sin recuperar todos los demás directorios y subdirectorios
- 19. Cómo recuperar todos los datos en una consulta
- 20. ¿Cómo puedo encontrar todos los campos públicos de un objeto en C#?
- 21. ¿Todos los métodos devuelven `this` a monad?
- 22. copie todos los nombres de métodos - Intellij
- 23. PHPUnit: simula todos los métodos, excepto algunos
- 24. Clase abstracta con todos los métodos concretos
- 25. ¿Cómo puedo ocultar todos los métodos java.lang.Object desde la finalización del código?
- 26. Principio de Responsabilidad Individual: ¿todos los métodos públicos en una clase tienen que usar todas las dependencias de clase?
- 27. ¿Cómo encontrar todos los métodos anulando los métodos de superclase/interfaz sin la anotación @Override?
- 28. llamando a los métodos C++ desde C
- 29. ¿Cómo repito todos los métodos de una clase en Perl?
- 30. cómo mantener todos los métodos en una clase con ProGuard
Una palabra: reflejo. – BoltClock