Tôi đang sử dụng MEF và tôi có hai xuất khẩu có cùng loại hợp đồng nhưng với tên hợp đồng khác nhauService Locator: Nhận tất cả xuất khẩu
Ví dụ:
[Export("TypeA", typeof(MyPlugin))]
[Export("TypeB", typeof(MyPlugin))]
tôi có thể lấy từng xuất khẩu sử dụng tên hợp đồng tương ứng:
ServiceLocator.GetExportedValues<MyPlugin>("TypeA");
Nhưng bây giờ tôi muốn truy xuất tất cả các trường hợp triển khai MyPlugin
. có cách nào tôi có thể làm được không?
Tôi đã thử bằng cách sử dụng đoạn mã sau:
ServiceLocator.GetExportedValues<MyPlugin>();
Nhưng nó đã không làm việc. Rõ ràng nó được sử dụng để truy xuất các bản triển khai không có tên hợp đồng cụ thể.
Bất kỳ ý kiến nào?
như thế nào này trả lời bất kỳ khác với @ default.kramer không? –
Tuyên bố là như nhau, nhưng tôi cũng cho bạn thấy làm thế nào bạn có thể có Mef tiêm tất cả các trường hợp mà không cần phải tham khảo các container/catalog trực tiếp ... đó là cách thích hợp làm thế nào người ta nên sử dụng một khuôn khổ DI. –