https://aspnetboilerplate.com/Pages/Documents/Dependency-Injection
维基百科说:“ 依赖注入是一种软件设计模式,其中一个或多个依赖项(或服务)被注入或通过引用传递到依赖对象(或客户端),并成为客户端状态的一部分。从自己的行为中创建客户端的依赖关系,允许程序设计松散耦合并遵循依赖性倒置和单一责任原则。它直接对比服务定位器模式,允许客户端了解他们用来查找依赖关系的系统。 “
在不使用依赖注入技术的情况下,很难管理依赖关系并开发模块化且结构良好的应用程序。
最佳实践,您应该使用构造函数和属性注入来获取类的依赖项。
public class PersonAppService
{
public ILogger Logger { get; set; }
private IPersonRepository _personRepository;
public PersonAppService(IPersonRepository personRepository)
{
_personRepository = personRepository;
Logger = NullLogger.Instance;
}
public void CreatePerson(string name, int age)
{
Logger.Debug("Inserting a new person to database with name = " + name);
var person = new Person { Name = name, Age = age };
_personRepository.Insert(person);
Logger.Debug("Successfully inserted!");
}
}