对于 ASP.NET 5,已经默认提供了一个 DI,它看起来很有趣。我一直在使用 Autofac 和 MVC 5,它可以选择一次注册所有程序集。下面是在 Autofac 中注册所有以“Service”结尾的类的示例代码。
// Autofac Configuration for API
var builder = new ContainerBuilder();
builder.RegisterModule(new ServiceModule());
...
...
builder.RegisterAssemblyTypes(Assembly.Load("IMS.Service"))
.Where(t => t.Name.EndsWith("Service"))
.AsImplementedInterfaces()
.InstancePerLifetimeScope();
我的问题是,asp.net 5 的默认 DI 容器中是否有类似的东西,您可以在其中一次注册所有服务?
我的问题是,asp.net 5 的默认 DI 容器中是否有类似的东西,您可以在其中一次注册所有服务?
不是 OOTB,而是 Kristian Hellang 创建了一个很酷的包,名为Scrutor https://github.com/khellang/Scrutor这为内置容器添加了程序集扫描功能。您可以在以下位置找到它:NuGet.org https://www.nuget.org/packages/Scrutor.
services.Scan(scan => scan
.FromAssemblyOf<ITransientService>()
.AddClasses(classes => classes.AssignableTo<ITransientService>())
.AsImplementedInterfaces()
.WithTransientLifetime()
.AddClasses(classes => classes.AssignableTo<IScopedService>())
.As<IScopedService>()
.WithScopedLifetime());
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)