Tôi đang sử dụng Autofac để xử lý việc tiêm phụ thuộc trong ứng dụng của mình. Tuy nhiên, tôi có một thành phần thực hiện một số phép thuật phản chiếu trong thời gian chạy và tôi không biết tại thời gian biên dịch những gì phụ thuộc nó sẽ cần.Sử dụng Autofac làm định vị dịch vụ
Thông thường, tôi sẽ chỉ để thành phần này tham chiếu trực tiếp vào Vùng chứa và giải quyết bất cứ thứ gì nó muốn. Tuy nhiên, lớp đang khởi tạo lớp này không có tham chiếu đến Vùng chứa.
Có hiệu quả, thành phần của tôi có phụ thuộc vào Autofac. Tôi thích khớp nối lỏng lẻo hơn, nhưng điều đó dường như không phải là một lựa chọn ở đây. Có cách nào để hỏi (trong constructor args, hoặc sử dụng tiêm tài sản, hoặc bất cứ điều gì!) Autofac để cho tôi một tham chiếu đến các container trong constructor của tôi? Hoặc, có cách nào để có Autofac cung cấp cho tôi một đối tượng định vị dịch vụ ma thuật có thể giải quyết được gì không?
Nó sẽ là thú vị mặc dù để xem những gì "ma thuật" các thành phần đang làm. Có lẽ có nhiều cách khác so với mô hình định vị dịch vụ. Bạn có thể cập nhật bằng một số mã không? –
Tôi có thể mô tả nó khá tốt. Khi thư đến qua một xe buýt, mã xác định loại thư nào đang sử dụng một số siêu dữ liệu và sau đó tạo kiểu được cho biết. Sau đó, nó cần phải tìm tất cả những người triển khai 'IConsume' (trong đó 'type' là loại từ siêu dữ liệu) bằng cách sử dụng Autofac và sau đó gọi phương thức Consume trên nó. –
Bạn có nghĩa là: http://kozmic.pl/2010/03/11/advanced-castle-windsor-ndash-generic-typed-factories-auto-release-and-more/ –