Với Autofac vượt trội, mọi loại bạn muốn sử dụng được đăng ký với vùng chứa, hoặc trực tiếp sử dụng phương pháp Register...
hoặc hàng loạt bằng cách sử dụng RegisterAssemblyTypes
. Nhưng cũng có những lựa chọn khác, hãy xem Nicholas article about resolving everything. Vì vậy, có, Autofac có thể làm những gì Unity làm, nhưng bạn sẽ phải kích hoạt nó.
Cập nhật: trên thực tế, các "giải quyết bất cứ điều gì" tính năng được xây dựng-in bây giờ, và bạn có thể làm như sau:
var cb = new ContainerBuilder();
cb.RegisterSource(new AnyConcreteTypeNotAlreadyRegisteredSource());
return cb.Build();
Với AnyConcreteTypeNotAlreadyRegisteredSource
bạn thực sự có thể giải quyết cả hai C
và B
mà không cần đăng ký bất kỳ của họ.
Lưu ý rằng tuổi thọ của các dịch vụ được giải quyết bởi AnyConcreteTypeNotAlreadyRegisteredSource
sẽ là "per dependency scope".
Lưu ý:this topic tại nhóm thảo luận Autofac có liên quan.
Nguồn
2010-08-05 11:16:22
cảm ơn. đó là câu hỏi của tôi trong nhóm thảo luận. – Benny
Tuổi thọ mặc định của AnyConcreteTypeNotAlreadyRegisteredSource – JJS
@JJS - đó là thời gian mặc định của Autofac-in-chung, là "mỗi phạm vi phụ thuộc" (ref https://code.google.com/p/autofac/wiki/InstanceScope) –