Tôi đang cố gắng tìm tất cả các phương thức mà giao diện cấp cho tôi thông qua phản ánh. Tôi có một mảng loại mà tôi xác minh chỉ có giao diện, từ đó tôi cần phải trích xuất tất cả các phương pháp. Thật không may, Nếu tôi làm một cái gì đó như typeof (IList) .GetMethods() nó chỉ trả về các phương pháp trên IList không phải trên ICollection, hoặc IEnumerable Tôi đã thử truy vấn LINQ sau đây nhưng nó không trả về các phương thức được tìm thấy trên các giao diện bên ngoài. Tôi làm cách nào để khắc phục truy vấn của mình?Nhận tất cả các phương thức trên một Type [] của các giao diện bằng LINQ?
from outerInterfaces in interfaces
from i in outerInterfaces.GetInterfaces()
from m in i.GetMethods()
select m
Nếu đây là SQL tôi có thể làm một cái gì đó giống như CTE đệ quy với công đoàn, nhưng tôi không nghĩ cú pháp như vậy tồn tại trong C#. Bất cứ ai có thể giúp đỡ ở đây?
@LukeH: Xem sửa của tôi. GetInterfaces() nhận tất cả các giao diện và đi lên cây phân cấp cho bạn. – BFree
@ LukeH: Wow, tôi chưa bao giờ biết điều đó. Tôi rất muốn xem một số tài liệu xung quanh đó. Tôi cũng tự hỏi nếu các ngôn ngữ khác (đáng chú ý nhất là VB.Net) cũng vậy ... – BFree
@BFree: Tôi vừa xóa nhận xét của mình trong khi tôi thực hiện một số nghiên cứu khác. Tôi ít hơn chắc chắn về nó, mặc dù tôi chắc chắn rằng tôi đọc nó ở đâu đó có thẩm quyền. Có nói rằng, tôi nghĩ rằng 'GetInterfaces' là đệ quy anyway mà sẽ làm cho hành vi thực tế không liên quan đến câu trả lời của bạn. – LukeH