Tôi đang tạo plugin cho ứng dụng của bên thứ 3 và plugin của tôi sử dụng Autofac để kết nối các thành phần khác nhau. Thùng chứa được xây dựng khi khởi động ứng dụng, nhưng ứng dụng máy chủ lưu trữ sẽ gọi các lệnh của tôi sau đó.Các thành phần có thể được đăng ký tạm thời trong thùng chứa Autofac không?
Khi một lệnh được gọi, ứng dụng máy chủ lưu trữ cung cấp một vài trường hợp loại mà nó xác định và các thành phần của tôi sẽ cần phải sử dụng. Tôi muốn đăng ký các trường hợp này trong vùng chứa để nó có thể xử lý các thành phần phụ thuộc vào các trường hợp này.
Tôi biết rằng tôi có thể sử dụng ContainerBuilder để cập nhật vùng chứa hiện tại, nhưng tôi muốn xóa các đăng ký này khi lệnh đã hoàn tất vì các trường hợp này sẽ không còn hợp lệ nữa. Điều này có thể không?
Có thể cách tiếp cận tốt hơn là sử dụng 2 vùng chứa ... Lệnh có thể tạo vùng chứa mới để đăng ký các trường hợp này và các thành phần khác có thể được giải quyết từ vùng chứa phạm vi ứng dụng.
Làm cách nào tôi có thể kết nối 2 vùng chứa để giải quyết cuộc gọi bong bóng đến vùng chứa phạm vi ứng dụng?
Có bất kỳ gotchas nào cần phải biết về phương pháp này không? Tôi tưởng tượng có thể có vấn đề đời thành phần ...
Edit: Bây giờ tôi đã thực hiện nhiều hơn một chút nghiên cứu và thử nghiệm và và nó quay ra tôi chỉ có thể sử dụng BeginLifetimeScope (Action <ContainerBuilder>) quá tải để đăng ký ứng dụng máy chủ cung cấp các cá thể chỉ cho vòng đời lồng nhau. Đối với một số lý do tôi nghĩ rằng việc thêm đăng ký vào vòng đời lồng nhau sẽ dẫn đến việc chúng được thêm vào vùng chứa gốc nhưng điều đó dường như không đúng.
Có, Kính viễn vọng là chính xác những gì bạn muốn trong trường hợp này. Vui lòng đăng câu trả lời cho câu hỏi của bạn và đánh dấu câu trả lời là được chấp nhận để mọi người tìm câu hỏi này sau cũng nhận được câu trả lời. –
Cảm ơn, tôi đã cố gắng đăng câu trả lời của mình trước đó nhưng SO cho biết tôi phải đợi 8 giờ vì tôi chưa có đủ điểm danh tiếng ... –
Yay! Bây giờ tôi có thể đăng câu trả lời của mình nhưng không thể chấp nhận nó cho đến ngày mai ... –