dri*_*zie 3 dependency-injection .net-core asp.net-core
一些容器允许按名称注册.Ninject就是一个例子.
.NET Core DI容器是否支持此功能?如果没有,是否有计划或第三方图书馆支持这个?
.NET Core DI容器是否支持此功能?如果没有,是否有计划或第三方图书馆支持这个?
简答:NO和NO
替换默认服务容器
内置服务容器旨在满足框架的基本需求以及构建在其上的大多数消费者应用程序.但是,开发人员可以使用其首选容器替换内置容器.该
ConfigureServices方法通常返回void,但如果将其签名更改为returnIServiceProvider,则可以配置并返回不同的容器.有许多可用于.NET的IOC容器.
(强调我的)
有了它,你可以检查Ninject是否有.net核心的扩展,看看你是否可以集成它.
您可以编写自己的约定,一个简单的示例如下所示:
Assembly.GetAssembly(typeof(Startup))
.ExportedTypes
.Where(t => t.IsClass)
.SelectMany(t => t.GetInterfaces(), (c, i) => new {Class = c, Interface = i})
.ToList()
.ForEach(x => services.AddTransient(x.Interface, x.Class));
Run Code Online (Sandbox Code Playgroud)
您可以扩展它以包含抽象类、非公共类型等。
| 归档时间: |
|
| 查看次数: |
1228 次 |
| 最近记录: |