自动注入服务网络核心

automatically inject services net core

我正在.net core 中做一个项目

并且始终添加接口和服务实现该接口

public interface IDBContainer{
...
}

public class DBContainer : IDBContainer{
...
}

然后我在启动时注入它们

public void ConfigureServices(IServiceCollection services)
{
        services.AddTransient<IDBContainer, DBContainer>();
}

或使用扩展方法添加它们

public static IServiceCollection AddInfrastructure(this IServiceCollection services)
{
       services.AddTransient<IDBContainer, DBContainer>();
       return services;
}

并在启动中

[..]
services.AddInfrastructure();

但这就是我必须自己将每个接口和服务注入的问题

在扩展方法中或在启动中class

有没有自动为它添加接口和实现。接口和 class 在同一解决方案的另一个项目程序集中还有另一件事???

如果可以像 AutoFac 或其他东西

那样使用其他库就没有问题

你试过了吗https://github.com/khellang/Scrutor? 据我所知,AutoFac 也可以与此处记录的一些额外工作一起使用 https://autofaccn.readthedocs.io/en/latest/integration/aspnetcore.html

虽然我个人更喜欢 EXPLICIT IoC 注册。

这是一个“自动扫描”库。

NetCore.AutoRegisterDi

https://www.nuget.org/packages/NetCore.AutoRegisterDi/

https://www.thereformedprogrammer.net/asp-net-core-fast-and-automatic-dependency-injection-setup/

How to NetCore.AutoRegisterDi works The NetCore.AutoRegisterDi library is very simple – it will scan an assembly, or a collection of assemblies to find classes that a) are simple classes (not generic, not abstract, not nested) that have interfaces and b) have an interface(s). It will then register each class with its interfaces with the NET Core DI provider.