2012-11-13 34 views
8

Tôi đang cố gắng lấy danh sách các lớp thực hiện một giao diện nhất định trong các cửa sổ 8 ứng dụng lưu trữ nhưng có vẻ như sự phản ánh rất khác trong WinRT. tìm một ví dụ tốt về làm như vậy.Bắt tất cả các lớp thực hiện một giao diện cụ thể trong WinRT

Có ai biết, làm thế nào để tải lắp ráp hiện tại và vòng qua nó?

Bất kỳ trợ giúp nào được đánh giá cao :)

+0

Bạn cần phải biết mà lớp bạn có thể sử dụng vì đây là tài liệu tốt. –

+0

@Ramhound Tôi không hoàn toàn chắc chắn những gì bạn đang yêu cầu, trong kịch bản của tôi, tôi có hơn 100 quy tắc và mỗi quy tắc có một tên duy nhất và triển khai giao diện IRule. Tôi muốn nhận tất cả các lớp thực hiện giao diện IRule. –

+0

Bạn đã xem [thread] này (http://stackoverflow.com/questions/13373000/in-metro-get-all-inherited-classes-of-an-abstract-class) chưa? Có lẽ nó giúp bạn NG –

Trả lời

10

Có câu trả lời từ diễn đàn MSDN. Chỉ cần đăng nó ở đây trong trường hợp người khác đang tìm kiếm điều tương tự.

Mã này sẽ nhận được tất cả các lớp học mà thực hiện giao diện IDisposable:

// We get the current assembly through the current class 
var currentAssembly = this.GetType().GetTypeInfo().Assembly; 

// we filter the defined classes according to the interfaces they implement 
var iDisposableAssemblies = currentAssembly.DefinedTypes.Where(type => type.ImplementedInterfaces.Any(inter => inter == typeof(IDisposable))).ToList(); 
Các vấn đề liên quan