项目引入:Microsoft.Extensions.DependencyInjection
【https://www.nuget.org/packages/Microsoft.Extensions.DependencyInjection】
原始写法:
IMicrophone microphone = new Microphone();
IPower power = new Power(microphone);
IHeadphone headphone = new Headphone(power);
依赖注入写法:
ServiceCollection services = new ServiceCollection();
services.AddTransient<IMicrophone, Microphone>();
services.AddTransient<IPower, Power>();
services.AddTransient<IHeadphone, Headphone>();
ServiceProvider serviceProvider = services.BuildServiceProvider();
var headphone = serviceProvider.GetService<IHeadphone>();
相关类
public interface IMicrophone{}
public class Microphone : IMicrophone {}
public interface IPower{}
public class Power : IPower {
public Power(IMicrophone microphone) { }
}
public interface IHeadphone {}
public class Headphone: IHeadphone {
public Headphone(IPower power) { }
}