IOC 内置容器的使用
//nuget安装: Microsoft.Extensions.DependencyInjection //ServiceCollection的生命周期 //AddTransient 瞬时生命周期,每次创建都是一个全新的实例 //AddSingleton 单列生命周期,同一个类型创建出来的是同一个实例 //AddScoped 作用域生命周期,同一个services获取到的是用一个实例 //创建一个容器 ServiceCollection services = new ServiceCollection(); //注册抽象和具体普通类之间的关系 services.AddTransient<IMicrophone, Microphone>(); //services.build 一下 ServiceProvider serviceProvider = services.BuildServiceProvider(); IMicrophone microphone = serviceProvider.GetService<IMicrophone>();
IMicrophone 类
public class IMicrophone { }
Microphone 类
public class Microphone : IMicrophone { public Microphone() { Console.WriteLine($"{this.GetType().Name}被构造."); } }