依赖注入(Dependency Injection,简称DI)是一种设计模式,用于解耦组件之间的依赖关系。在C#中,常见的依赖注入方式有以下几种:
- 构造函数注入(Constructor Injection):通过在类的构造函数中声明依赖参数,将依赖对象通过构造函数传递给类的实例。例如:
-
public class MyClass { private readonly IDependency _dependency; public MyClass(IDependency dependency) { _dependency = dependency; } // ... }
-
- 属性注入(Property Injection):通过公共属性来注入依赖对象。例如:
-
public class MyClass { public IDependency Dependency { get; set; } // ... }
-
- 方法注入(Method Injection):通过方法参数来注入依赖对象。例如:
-
public class MyClass { public void DoSomething(IDependency dependency) { // ... } // ... }
-
- 接口注入(Interface Injection):通过接口方法来注入依赖对象。这种方式较少使用,因为它需要类实现一个特定的接口来接收依赖对象。例如:
-
public interface IDependencyInjector { void InjectDependency(IDependency dependency); } public class MyClass : IDependencyInjector { private IDependency _dependency; public void InjectDependency(IDependency dependency) { _dependency = dependency; } // ... }
-