tôi dường như được làm điều này một chút công bằng trong mã của tôi:Tôi có ràng buộc ràng buộc các lớp bình thường bằng Autofac không?
public class ActionsModule : Module
{
protected override void Load(ContainerBuilder builder)
{
base.Load(builder);
builder.Register(c => LogManager.GetCurrentClassLogger()).As<ILog>().InstancePerDependency();
// Autofac doesn't seem to be able to inject things without explicit binding
builder.RegisterType<ComboActions>().As<ComboActions>().InstancePerHttpRequest();
builder.RegisterType<AppActions>().As<AppActions>().InstancePerHttpRequest();
}
}
}
đâu lớp 'hành động' là một lớp I yêu cầu để được tiêm vào bộ điều khiển của tôi, và có nhiều khác phụ phụ thuộc.
Dường như một chút rác rưởi. Tại sao không thể tự động giải quyết rằng lớp có một hàm tạo với các phụ thuộc đã được thỏa mãn và tự động tạo một cá thể?
Ý tôi là, nếu lớp A yêu cầu lớp B được tiêm và lớp B yêu cầu C, D, E, vv đủ công bằng, tôi đoán bạn không muốn đi bộ toàn bộ chuỗi phụ thuộc để xem bạn có thể tạo lớp hay không trong thời gian chạy. ... nhưng nếu lớp A trực tiếp phụ thuộc vào C và D được ràng buộc rõ ràng, chắc chắn đó là một trường hợp tầm thường?
Tôi có thiếu gì đó không? Có vẻ như không thấy bất kỳ tài liệu nào về việc này ...
Whoah. Không bao giờ biết về điều này. TIL! –
đây là tuyệt vời, đặc biệt là kể từ khi bạn có thể làm một cái gì đó như 'builder.RegisterSource (new AnyConcreteTypeNotAlreadyRegisteredSource (x => x.Name.Contains (" ViewModel ")));' –