.NET中的SPI/ServiceProvider?(轻量级IoC)

Cas*_*ang 1 .net dependency-injection inversion-of-control service-provider

是否类似于Java的java.util.ServiceLoader,它允许通过SPI动态查找和加载组件?

我正在寻找一些.NET的轻量级原生功能,它允许我轻松插入接口提供程序,而不是笨重的DI容器或自己编写它.

更新:这似乎不适用于.NET,因为没有像Java中那样本机内置的SPI功能.我接受了第一个答案,因为它最接近我所追求的.

Jef*_*eff 6

有一个本机IServiceProvider 接口.

也就是说,有很多非常丰富的IoC容器可供.NET使用

  • 温莎城堡
  • 统一
  • AutoFac
  • NInject

仅举几例.其中许多非常轻巧.它们还提供高级功能,如对象生存期管理(单线程,每线程等)和AOP(面向方面​​编程)功能.

也就是说,如果你真的想要轻量级而且没有依赖关系,那么你可以在大约30行代码中推出自己的代码.