static void Main(string[] args) { var serviceCollection = new ServiceCollection(); //ITank是静态类型,typeof后才能拿到动态的类型描述 //AddScoped方法有多种重载,这里调用的是第一个参数为一个类型,第二个参数为谁实现了这个类型 serviceCollection.AddScoped(typeof(ITank), typeof(HeavyTank)); serviceCollection.AddScoped(typeof(IVehicle), typeof(Car)); serviceCollection.AddScoped <Driver>(); var serviceProvider = serviceCollection.BuildServiceProvider(); //-------------------以上为注册------------------------------- ITank tank = serviceProvider.GetService <ITank>(); tank.Fire(); tank.run(); //-------------------------------------------------------------- Driver driver = serviceProvider.GetService <Driver>(); driver.Drive(); }