【问题标题】:How is AutoFac better than Microsoft.Extensions.DependencyInjection?AutoFac 比 Microsoft.Extensions.DependencyInjection 有什么优势?
【发布时间】:2022-03-25 22:56:01
【问题描述】:

AutoFac 比 Microsoft.Extensions.DependencyInjection 有什么优势? Autofac 支持属性和方法注入(但是我真的不明白属性和方法注入在哪里可能有用)。

我的意思是当我可以通过 Microsoft.Extensions.DependencyInjection 做同样的事情时,我为什么要使用 AutoFac

【问题讨论】:

标签: dependency-injection autofac


【解决方案1】:

这是一个公平的问题;根本区别在于 Autofac 可以在您需要时为您提供的附加功能。对于简单的应用程序,Microsoft DI 可能提供足够的功能,但我发现随着应用程序的增长,我发现自己想要/需要一些额外的功能。

在我看来,最初鼓励我开始使用 Aufofac 的功能是:

还有很多,但这些是我最喜欢的一些功能。检查文档以了解所有优点。

此外,您没有理由不能开始使用内置 DI,然后在您意识到需要它时添加 Autofac。 Autofac ASP.NET Core 集成 (https://autofaccn.readthedocs.io/en/latest/integration/aspnetcore.html) 只会获取您现有的所有注册,然后您可以在顶部添加这些额外功能。

为了在此全面披露,我将指出我是 Autofac 的维护者之一。

【讨论】:

  • 你忘了提到 IMO 最重要的功能:装饰器。
  • 是的,那是另一个伟大的;如果我列出所有功能,我可能整天都在这里! :)
  • 我已经使用 autofac 多年了,它完全坚如磐石,可以做任何我想做的事情。 Microsoft DI 似乎没问题(它不是 Prism!)但是当你想在课堂上创建东西时能够解析工厂是一个非常关键的习惯用法,这是我不会切换的 autofac 擅长的地方。
  • 我使用 Unity 很多年了,现在它已经死了,所以我正在寻找替代品。 Autofac 似乎是我的最爱。我也在看 SimpleInjector,但我讨厌它在第一次解决功能后被锁定。
  • 我个人使用autofac,因为它的属性自动接线功能也想知道是否有人知道性能差异
猜你喜欢
  • 2014-10-04
  • 2017-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-11
  • 2019-11-01
  • 1970-01-01
  • 2016-07-18
相关资源
最近更新 更多