2010-04-12 28 views
8

Có ai ở đó sử dụng Prism framework với Ninject thay vì Unity không? Tôi cần một số chức năng Unity không hỗ trợ, và tôi đã quyết định chuyển đổi container IoC thành Ninject. Tôi đang đấu tranh một chút với thay thế mặc dù ..Sử dụng lăng kính với Ninject

Những gì tôi cần sử dụng từ Prism là EventAggregator và RegionManager. Tôi đã thấy this sample mà thực sự thay thế, nhưng điều này được viết cho một phiên bản cũ của Prism, và một số các lớp dường như đã thay đổi vv Vì vậy, tôi đã kết thúc tất cả nhầm lẫn sau khi tìm kiếm một số nỗ lực trong cố gắng để viết lại nó.

Vì vậy - câu hỏi của tôi về cơ bản là: Làm cách nào để thay thế Unity bằng Ninject?

Các bước cần thiết là gì? Ban đầu tôi cho rằng tôi có thể viết một bootstrapper đơn giản để tạo và cấu hình một thùng chứa Ninject và sử dụng nó để giải quyết tất cả các đối tượng khác. Tôi liên kết IEventAggregator với EventAggregator và IRegionManager với RegionManager, nhưng nó không thành công khi tạo Shell và RegionManager.CreateRegion được gọi. Vấn đề là có vẻ như tôi cần phải đặt ServiceLocator ở đâu đó khi nó không thành công trên dòng này:

IServiceLocator locator = ServiceLocator.Current; 

Bất kỳ ý tưởng và lời khuyên nào trong quá trình thực hiện?

+1

Ngoài sự tò mò, bạn cần Unity chức năng gì? –

Trả lời

3

Michael Hart implemented the necessary bits cho Ninject trong Prism"

Bạn chỉ cần thực hiện của riêng bạn 'NinjectBoostrapper' và một thực hiện IServiceLocator sử dụng Ninject. Các mã trong liên kết làm tất cả legwork này cho bạn.

+0

Trông promissing! Cảm ơn rất nhiều để tham khảo. Sẽ có một cái nhìn bây giờ .. – stiank81

+0

@Anderson liên kết bị hỏng: ( – dFlat

+0

Hãy suy nghĩ tôi tìm thấy nó ở đây: http://sweux.com/blogs/pombeiro/?s=ninject – dFlat

5

tôi vừa tạo ra một dự án github rằng sử dụng Ninject 2.0 và Prism 4.0 mà phải đáp ứng các nhu cầu của bất cứ ai mà muốn trao đổi thống nhất hoặc MEF cho Ninject

Trang web là ở đây: Prism Ninject Extension

Các vấn đề liên quan