2010-07-16 22 views
20

Tôi đang cố gắng làm theo một số hướng dẫn khởi động để sử dụng MEF trong .Net 4, nhưng tôi gặp khó khăn khi tôi thiết lập ứng dụng. Các hướng dẫn nói để làm điều này:MEF: ComposeParts thiếu

var catalog = new DirectoryCatalog(@".\"); 
var container = new CompositionContainer(catalog); 
container.Composeparts(this); 

Nhưng phiên bản của System.ComponentModel.Composition kèm Net 4 dường như không có phương pháp Composeparts sẵn trên CompositionContainer, và tôi không thể tìm thấy một tài liệu tham khảo tốt về cách thực hiện điều này trong hệ thống hiện tại.

Dưới đây là tài liệu tham khảo Tôi hiện đang sử dụng: Building Composable Apps in .NET 4 with the Managed Extensibility Framework

Có ai ra khỏi đó có một tài liệu tham khảo tốt hơn rằng tôi nên được xem xét?

Trả lời

26

CompositionContainer không có phương thức ComposeParts, dưới dạng extension method.

Xem tham chiếu this đối với một số mã hoạt động.

+3

lý do tại sao oh tại sao oh tại sao nó là một phương pháp mở rộng! cảm ơn cho câu trả lời :-) – ColinE

22

Một điều cần lưu ý, nếu trước đây bạn chưa sử dụng các phương pháp mở rộng. Bạn PHẢI có tuyên bố sử dụng. Trong trường hợp này:

using System.ComponentModel.Composition; 

để mã trong câu hỏi hoạt động. Nếu không có câu lệnh using, intelliSense và trình biên dịch sẽ không cho phép sử dụng phương thức mở rộng.

+0

Cảm ơn. Bạn đã tiết kiệm cho tôi những phút quý giá tại Hackathon. – BSalita