asp.net core 3.x 模块化开发之HostingStartup
我们希望将一个项目(dll)看做一个模块/插件,一个模块往往需要在应用启动时做一些初始化工作,比如向IOC容器添加一些服务,为应用配置对象添加自己的数据源;也希望在应用关闭时做一些收尾工作,asp.net core为我们提供了这种机制,先来看看如何使用,再讲讲原理。 如何使用? 1、创建asp.net core 3.1的web应用程序,WebApplication6 2、创建我们的模块/插件项目,一个Standard2.1项目叫ClassLibrary2 3、在插件项目ClassLibrary2中定义实现IHostingStartup的类 1 public class HostingStartup : IHostingStartup 2 { 3 public void Configure(IWebHostBuilder builder) 4 { 5 //向IOC容器添加或替换各种服务 6 builder.ConfigureServices((c,b)=> { 7 b.AddSingleton<Class1>(); 8 }); 9 //为应用配置对象添加更多数据源 10 builder.ConfigureAppConfiguration(c => { 11 c.AddInMemoryCollection(new Dictionary<string, string> { {"a",