Tôi có ứng dụng web ASP.NET MVC triển khai nhà cung cấp tư cách thành viên tùy chỉnh. Nhà cung cấp tư cách thành viên tùy chỉnh lấy một số UserRepository
cho hàm tạo của nó cung cấp giao diện giữa nhà cung cấp thành viên và NHibernate. Các UserRepository
được cung cấp bởi container Ninject IoC. Rõ ràng, tuy nhiên, điều này không hoạt động khi nhà cung cấp được khởi tạo bởi .NET: constructor không có tham số không có UserRepository và không thể tạo một UserRepository yêu cầu một phiên NHibernate được truyền cho constructor của nó), sau đó có nghĩa là nhà cung cấp không thể truy cập kho dữ liệu của nó. Làm thế nào tôi có thể giải quyết sự phụ thuộc đối tượng của tôi?Tiêm phụ thuộc với Nhà cung cấp tư cách thành viên tùy chỉnh
Có thể đáng lưu ý rằng đây là một ứng dụng hiện có đã được trang bị thêm với Ninject. Trước đây tôi đã sử dụng các hàm tạo tham số có thể tạo ra các phụ thuộc bắt buộc của chúng kết hợp với các hàm tạo tham số để hỗ trợ kiểm thử đơn vị.
Bất kỳ suy nghĩ nào, hoặc tôi đã xây dựng bản thân mình thành một góc ở đây?
Ninject đã có bộ điều hợp CSL chính thức tháng 1 năm 2010. –
Nó vẫn bị thiếu trong trang chủ CSL (nó được đưa vào bản phát hành NInject) – SztupY
"hàm tạo, khởi tạo kho lưu trữ cần thiết bằng Ninject" - xem ra, nếu kho của bạn (hoặc phụ thuộc của chúng) nằm trong phạm vi Yêu cầu hoặc Phạm vi và bất kỳ loại bối cảnh dữ liệu dùng một lần xuất hiện, bạn sẽ kết thúc truy cập vào bối cảnh dữ liệu được xử lý trên tất cả trừ yêu cầu đầu tiên (vì bạn không kiểm soát thời gian của nhà cung cấp và ASP.NET sẽ sử dụng lại nó theo yêu cầu). Tôi đã kết thúc với nhận được một ví dụ kho lưu trữ từ định vị mỗi khi tôi cần thiết để gọi một khi tôi đi qua vấn đề này. –