2011-09-17 3 views

Trả lời

2

Sử dụng System.Net.Reflection. Các lớp Reflection cho phép bạn truy vấn siêu dữ liệu của các kiểu DLL trong thời gian chạy.

Something như this.GetType().Assembly.GetTypes();

12

Có sử dụng Assembly.GetTypes để trích xuất tất cả các loại, và sau đó sử dụng phản ánh trên từng loại để lặp các phương pháp công cộng.

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 sẽ trở lại tất cả các loại công trong việc lắp ráp. Bạn cũng không xác định xem bạn chỉ muốn các phương thức dụ, các phương thức tĩnh hay cả hai.