Changes in Ninject 2 nói rằng Ninject hỗ trợ Common Service Locator, nhưng làm cách nào để sử dụng? Tôi không tìm thấy bất kỳ hướng dẫn sử dụng hoặc mẫu.Tôi làm cách nào để sử dụng Trình định vị dịch vụ chung trong Ninject 2
Trả lời
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.
- 1. Tiêm phụ thuộc với Ninject, MVC 3 và sử dụng Mẫu định vị dịch vụ
- 2. Sử dụng Ninject với Dịch vụ Windows
- 3. Sử dụng Autofac làm định vị dịch vụ
- 4. Tôi làm cách nào để sử dụng Trình quản lý vai trò trong Dịch vụ WCF?
- 5. Định vị dịch vụ chung có được sử dụng rộng rãi không?
- 6. Làm thế nào để tiêm vào một số trình xử lý http asp.net chung sử dụng Ninject?
- 7. Tắt dịch vụ định vị trong trình mô phỏng iPhone?
- 8. DI Framework: làm thế nào để tránh liên tục đi qua tiêm depencies lên chuỗi, và không sử dụng một dịch vụ định vị (cụ thể với Ninject)
- 9. Tôi làm cách nào để kiểm tra dịch vụ WCF?
- 10. Làm thế nào tôi có thể nhận được Ninject 2 để sử dụng constructor parameterless cho LINQ to SQL DataContext?
- 11. Tôi làm cách nào để sử dụng Android SpeechRecognizer làm dịch vụ?
- 12. Nơi để định vị mô-đun Ninject trong ứng dụng nhiều tầng
- 13. Làm cách nào để ngăn ứng dụng/dịch vụ Android của tôi bị "giết" khỏi trình quản lý tác vụ?
- 14. Tôi nên tiêm ở đâu với Ninject 2+ (và làm cách nào để sắp xếp Mô-đun của tôi?)
- 15. Tôi làm cách nào để sử dụng api web dưới dạng dịch vụ web?
- 16. Tiêm HttpContext trong Ninject 2
- 17. Làm cách nào để tôi định vị thư mục Dropbox bằng cách sử dụng C#?
- 18. Tôi làm cách nào để định vị thư mục Google Drive bằng cách sử dụng C#?
- 19. Làm cách nào để sử dụng IPython làm trình thông dịch Python Emacs của tôi?
- 20. Tôi làm cách nào để kiểm tra dịch vụ web?
- 21. Làm cách nào để sử dụng dịch vụ để theo dõi sự thay đổi Định hướng trong Android
- 22. Tôi làm cách nào để xác định dung lượng bộ nhớ mà chương trình .NET của tôi đang sử dụng?
- 23. Tôi làm cách nào để phát hiện dịch vụ vị trí tắt cho ứng dụng của mình?
- 24. Dịch vụ báo cáo: Sử dụng quy trình làm dataSet?
- 25. Làm cách nào để triển khai mẫu định vị dịch vụ trong Cocoa Touch trên nhiều dự án?
- 26. Khi nào chúng tôi sử dụng dịch vụ windows?
- 27. Cách sử dụng dịch vụ thử nghiệm đơn vị đang sử dụng PetaPoco.Database
- 28. Tôi làm cách nào để tạo các tệp mở bằng cách sử dụng Sublime Text 2?
- 29. Làm thế nào để sử dụng Ninject trên các cụm
- 30. Sử dụng Ninject trong kiến trúc ứng dụng SOLID
CommonServiceLocator làm gì? – Chev
Gotcha, cảm ơn thông tin. Tôi đồng ý với bạn. – Chev