Tôi mới sử dụng Ninject (và DI nói chung).Tạo đối tượng sau khi khởi tạo với ninject
Tôi hiểu thế nào kernel tải mô-đun, và mã tôi đã viết vậy, đến nay có xu hướng có một dòng duy nhất:
myKernel.Get<MyApp>()
mà xây dựng tất cả mọi thứ tôi cần từ các ràng buộc trong mô-đun của tôi. Nếu có yêu cầu đối với các phiên bản khởi tạo bài mới, chúng được các nhà máy xử lý mà tôi ràng buộc để khởi tạo. Cho đến nay, các nhà máy đã được miễn phí của bất kỳ phụ thuộc ninject, chỉ đơn giản là làm mới lên các đối tượng theo yêu cầu.
Bây giờ tôi đã đạt đến điểm mà tôi cần suy nghĩ về việc tạo đối tượng sau khi khởi tạo và mẫu nhà máy riêng của tôi không còn cắt nữa. Điều này sẽ hỗ trợ một giao diện pub/sub cho các máy khách (remote). Với mỗi kết nối mới đến máy chủ của tôi, tôi muốn tạo các trường hợp IClient
mới theo một tập hợp các ràng buộc được xác định trong mô-đun ninject. Điều này có nghĩa là nhà máy tôi chuyển vào lúc khởi tạo phải có hạt nhân riêng của mình (hay là một hạt nhân chính)? Trường hợp sẽ CommonServiceLocator tính năng này. CSL có cần thiết không?
Trước khi tôi đi quá xa xuống tận cùng, tôi nghĩ tốt nhất nên hỏi ở đây về cách những người khác có thể tiếp cận vấn đề này.
Cảm ơn Remo. Vì vậy, nếu tôi hiểu chính xác, trong 2,3 bạn không cần phải lo lắng về việc tạo ra một thực hiện cụ thể của giao diện nhà máy? Việc thực hiện thực tế được phát ra bằng cách nào đó bởi ninject khi bị ràng buộc bằng cách sử dụng một cuộc gọi 'ToFactory()'? – spender
Có được triển khai tự động bằng proxy động –
Tốt. Cảm ơn bạn đã giúp đỡ. Nó làm sáng tỏ rất nhiều câu hỏi trong đầu tôi. – spender