Giả sử tôi có các lớp sau mà tôi muốn xây dựng bằng Ninject, với các mũi tên hiển thị các phụ thuộc.Phạm vi Ninject - sử dụng cùng một trường hợp trên toàn bộ biểu đồ đang được xây dựng
A > B > D
A > C > D
Tôi muốn cấu hình Ninject như vậy A là scoped thoáng qua, ví dụ: mỗi khi bạn hỏi Ninject cho một A, bạn sẽ có được một cái mới. Tôi cũng muốn B và C tạm thời, bạn sẽ nhận được một cái mới mỗi khi bạn yêu cầu A. Nhưng tôi muốn D được sử dụng lại trên cả B và C. Vì vậy, mỗi khi tôi yêu cầu A, tôi muốn Ninject xây dựng một trong mỗi đối tượng, không phải hai D. Nhưng tôi không muốn Ds được tái sử dụng trên As khác nhau.
Cách tốt nhất để thiết lập điều này bằng Ninject là gì?
Cập nhật:
Sau khi một số nghiên cứu nhiều hơn, nó có vẻ như Unity có PerResolveLifetimeManager mà làm những gì tôi đang tìm kiếm. Có tương đương Ninject không?
Sẽ không ngắt nếu D cũng là một phần nếu chuỗi phụ thuộc không bao gồm A? –
@KevinBabcock. Không, nó sẽ không vỡ. Sau đó, đại biểu sẽ trả về 'null' tương đương với đăng ký sau:' kernel.Bind() .ToSelf(). InTransientScope(); ' –
nemesv
Cảm ơn bạn đã làm rõ. Câu trả lời tốt! –