Tôi muốn ứng dụng của mình luôn sử dụng dịch vụ làm đơn, làm cách nào để thiết lập Ninject để sử dụng phạm vi đơn theo mặc định. Tôi đang sử dụng các quy ước để đăng ký các loại của mình, tôi có cần sử dụng phương thức Bind <> không?Làm thế nào để tôi nói với ninject 3 để sử dụng phạm vi singleton theo mặc định cho tất cả các loại?
Q
Làm thế nào để tôi nói với ninject 3 để sử dụng phạm vi singleton theo mặc định cho tất cả các loại?
5
A
Trả lời
8
Hỷ, Giả sử tất cả các dịch vụ của bạn kế thừa từ IService
bạn có thể viết như sau
Thêm sử dụng sau tuyên bố
using Ninject.Extensions.Conventions;
Sử dụng công ước như
kernel.Bind(x => x
.FromThisAssembly()
.SelectAllClasses().InheritedFrom<IService>()
.BindAllInterfaces()
.Configure(b => b.InSingletonScope()));
Bạn có thể cần phải tweek nó một chút để nhu cầu của bạn.
Phiên bản 3.0.1.10 không có phương pháp Bind với chữ ký này. – Alexanderius
@Alexanderius, đó là tiện ích mở rộng Ninject.Extensions.Conventions. –