Trả lời

26

Bản tải xuống Ninject2 chứa CommonServiceLocator.NinjectAdapter.dll (trong thư mục 'tiện ích mở rộng' của tệp zip). Thêm dll này và Ninject.dll vào dự án của bạn.

Trong con đường khởi động của ứng dụng của bạn (sau khi cấu hình kernel Ninject), bạn có thể sử dụng đoạn mã sau:

IKernel ninject = ...; 

var locator = new NinjectServiceLocator(ninject); 

ServiceLocator.SetLocatorProvider(() => locator); 

Xin lưu ý rằng dịch vụ Locator chung (CSL) là một thư viện cung cấp một sự trừu tượng trên các thùng chứa IoC và chứa một mặt tiền tĩnh (triển khai mẫu Locator Service). Nó là một giao diện chung mà các nhà phát triển có thể sử dụng để ngăn chặn tùy thuộc vào việc thực hiện IoC cụ thể. CSL đặc biệt hữu ích cho các nhà phát triển khung công tác. Các nhà phát triển ứng dụng sử dụng mô hình tiêm phụ thuộc (DI) tốt hơn. Khi DI được sử dụng đúng, không cần sử dụng CSL trong một ứng dụng. Mặc dù CSL phù hợp hơn cho việc phát triển khung công tác, ngay cả ở đó tôi cũng thấy việc sử dụng CSL có vấn đề. Trong tin rằng hầu hết thời gian sử dụng giao diện phổ biến như vậy có thể được loại bỏ bằng cách có một thiết kế phù hợp.

+0

CommonServiceLocator làm gì? – Chev

+0

Gotcha, cảm ơn thông tin. Tôi đồng ý với bạn. – Chev

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