Managing Dependency Injection in C# with Autofac用手依賴注入:手工VS autofac
var di = new EmployeeObserver(employees, new Printer(Console.Out));
di.FindExperts();
與autofac的解釋卻是非常簡潔的方式與downloadable source code
依賴注入:
ContainerBuilder autofac = new ContainerBuilder();
autofac.Register(o => new EmployeeObserver(o.Resolve<IList<Employee>>(), o.Resolve<IPrinter>()));
autofac.RegisterType<Printer>().As<IPrinter>();
autofac.RegisterInstance(employees).As<IList<Employee>>();
autofac.RegisterInstance(Console.Out).As<TextWriter>();
using (var container = autofac.Build())
{
container.Resolve<EmployeeObserver>().FindExperts();
}
在其他一些Q &作爲它表示我們可以在編寫單元測試時看到autofac的優勢。
除此之外,有人可以給出理由或細節更多爲什麼我應該使用autofac而不是手動依賴注入更復雜的代碼?
它說:
可以在這個特殊的例子,很難看出爲什麼這種方法 比手工配置依賴注入更好,但你 應該注意一個重要的事情 - 與Autofac每個組件 獨立於所有其他配置,這就是當你的應用程序變得更加複雜時, 會有什麼不同。
你能指出一個這種情況的複雜版本的例子,它顯示了我將堅持使用autofac用法vs依賴的優勢嗎?
相關:https://stackoverflow.com/questions/32032771/using-dependency-injection-without-any-di-framework – Steven
你確定其他地方談論在單元測試中使用_autofac_,或者只是_dependency injection_在單元測試?您是否具體詢問單元測試部分,或者一般情況下的DI/autofac?這是一個相當廣泛的主題,所以要在這裏回答你需要對你的問題做出相當準確的判斷。 –
@JamesThorpe尤其不是單元測試部分,而是後者 –