2011-10-21 25 views
6

Nếu tôi đăng ký:được nhiều bindings Ninject đảm bảo để duy trì trật tự ràng buộc của họ

Bind<IWeapon>().To<Sword>(); 
Bind<IWeapon>().To<Knife>(); 
Bind<IWeapon>().To<ChuckNorris>(); 

Và sau đó lấy qua:

IEnumerable<IWeapon> weapons = ServiceLocator.Current.GetAllInstances<IWeapon>(); 

Tôi đảm bảo các ràng buộc sẽ luôn luôn được giao trở lại trật tự đó?

Tôi đã thử và có vẻ như vậy, nhưng điều này hoàn toàn có thể xảy ra.

Trả lời

7

Câu trả lời ngắn gọn: Không, bạn không!

Câu trả lời dài hơn một chút: Việc triển khai hiện tại giữ nguyên thứ tự. Nhưng nó không phải là bảo đảm rằng điều này vẫn sẽ là trường hợp trong các phiên bản tương lai của Ninject. Ngoài ra, bạn không nên có quy tắc kinh doanh như vậy trong cấu hình container IoC.

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