Tôi có * .dll được viết bằng C# và tôi cần lấy danh sách tất cả các phương thức hoặc lớp công khai có trong * .dll đó. Có cách nào để làm điều đó lập trình với C#?Cách lấy tất cả các phương thức công khai từ * .dll
9
A
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.
Một từ: phản ánh. – BoltClock