关于依赖注入的示例需要解释
本文关键字:解释 注入 于依赖 依赖 | 更新日期: 2023-09-27 18:02:30
我正在浏览这篇关于依赖注入的文章http://www.asp.net/web-api/overview/advanced/dependency-injection
Unity Container from Microsoft.
有几件事对我来说没有意义
例如,在 行之后 public ProductsController(IProductRepository repository)
上面是Controller的构造函数。我需要知道谁将repository
传递给构造函数?这是否可以通过在Unity中注册iproductrerepository接口来实现?
public static void Register(HttpConfiguration config)
{
var container = new UnityContainer();
container.RegisterType<IProductRepository, ProductRepository>(new HierarchicalLifetimeManager());
config.DependencyResolver = new UnityResolver(container);
// Other Web API configuration not shown.
}
上面的代码是所有需要使MVC传递对象到一个控制器的构造函数?
你回答了自己的问题:
这是可能通过注册iproductrerepository接口与Unity?
是的。
当你请求使用Unity解析一个类型时,容器会搜索公共构造函数。如果构造函数需要某种实现(在您的例子中是IProductRepository
),容器将在其注册中搜索所有所需参数的实现。如果找到,它会解决这个问题。这是一个递归过程。
是的。你需要使用容器注册IProductRepository
的实现,以便使用该容器解析控制器的实例。