Unity构造函数注入代码示例

如果使用 Unity 实例化一个类,该类的构造函数依赖一个或多个其他类,则 Unity 会为构造函数自动创建参数中指定的被依赖的类的实例。
例如,下面的代码展示了一个名为 "CustomerService" 的类,其构造函数的入参依赖于一个名为 "LoggingService" 的类。

复制代码
public class CustomerService
{
  public CustomerService(LoggingService log)
  { 
    log.WriteToLog("I'm an injected concrete logging service.");
  }
} 
复制代码

在运行时,可使用 Unity 容器的 Resolve 方法创建 "CustomerService" 类的实例,则一个 "LoggingService" 类的具体实现会被注入到 "CustomerService" 实例中。

IUnityContainer container = new UnityContainer();
CustomerService customer = container.Resolve<CustomerService>();