首先说一下.Net Core 自带的注入。
新建一个NetCore 控制台程序,我这里用的是.NetCore3.1 ,创建好项目之后,添加Nugget引用如下:
![0](https://img2022.cnblogs.com/blog/1364930/202208/1364930-20220810100101089-458279517.png)
然后修改Program.cs文件
private static IConfiguration Configuration { get; set; } static void Main(string[] args) { CreateHostBuilder(args).Build().Run(); } public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .ConfigureAppConfiguration((_, config) => Configuration = config.Build()) .ConfigureServices(ConfigureServices); private static void ConfigureServices(IServiceCollection services) { // 注入mysql上下文 services.AddScoped<DbContext, MySqlDbContext>(); services.AddDbContext<MySqlDbContext>(options => options.UseMySql(Configuration.GetConnectionString("Default"), options => options.CommandTimeout(300) )); // 注入相关的Service services.AddTransient<IFirstService,FirstServiceImpl>(); services.AddTransient<ISecondService, SecondServiceImpl>(); //注册后台服务 services.AddHostedService<Worker>(); }