Bat*_*nit 32
Ninject 3.3.0于2017年9月26日发布,现在面向.NET Standard 2.0,因此也可以在.NET Core 2.0上运行.
从事物的过程(参见关于GitHub的问题/讨论)看来,4.0-beta中的一些变化似乎可能会被还原.我不希望很快就会有4.0决赛.因此,我建议您使用当前的第3版.
Bra*_*don 15
只想添加; 虽然前面的两个答案都是正确的,因为ASP.Net核心确实提供了内置依赖注入,但对于更高级的场景来说还不够.因为它不支持Ninject,AutoFac,Unity或StructureMap支持的所有功能.
目前,我所知道的唯一完全支持.net核心的DI库是AutoFac,现在也是Unity.添加它非常简单.更换内置DI需要做的唯一事情如下.这个例子适用于AutoFac,但它看起来几乎与Unity相同.
首先,使用IServiceProvider(来自AutoFac的依赖项)替换startup.cs中ConfigureServices上的void,如下所示:
public IServiceProvider ConfigureServices(IServiceCollection services)
Run Code Online (Sandbox Code Playgroud)
然后创建一个容器构建器,从ConfigureServices构建并解析IServiceProvider:
var builder = new ContainerBuilder();
builder.Populate(services);
var container = builder.Build();
return container.Resolve<IServiceProvider>();
Run Code Online (Sandbox Code Playgroud)
我有一个围绕第二部分的包装器,允许您使用AutoFac模块动态加载和构建不同的配置,我可能会说服上传到GitHub或者有兴趣的东西.
归档时间: |
|
查看次数: |
16939 次 |
最近记录: |