Tôi đã bắt đầu sử dụng Autofac sau bài hướng dẫn này: http://flexamusements.blogspot.com/2010/09/dependency-injection-part-3-making-our.htmlAutofac khác biệt giữa ký và RegisterType
lớp đơn giản không có tham số trong constructor
builder.RegisterType<ConsoleOutputService>().As<IOutputService>();
Như đã giải thích trong hướng dẫn, mã ở trên có thể được đọc là: thiết lập ConsoleOutputService khi triển khai IOutputService
Lớp đơn giản với một paramete r trong constructor
builder.Register(c => new MultipleOutputService(outputFilePath)).As<IOutputService>();
Tôi không hiểu tại sao chúng ta sử dụng một biểu thức lambda để đăng ký lớp này (và những gì biểu hiện này chính xác không) và tại sao chúng ta không thể gõ mã này
builder.RegisterType<MultipleOutputService(outputFilePath)>().As<IOutputService>();
Cảm ơn trước sự giúp đỡ của bạn
Cám ơn câu trả lời của bạn! – Swell