簡體   English   中英

有關依賴關系注入的樣本示例需要解釋

[英]sample example about Dependency injection needs explanation

我正在閱讀有關依賴項注入的文章http://www.asp.net/web-api/overview/advanced/dependency-injection

它顯示了Microsoft的Unity Container。

有些事情對我來說沒有意義

例如,以下行

  public ProductsController(IProductRepository repository)

上面是Controller的構造函數。 我需要知道誰將repository傳遞給構造函數? 通過在Unity中注冊IProductRepository接口可以使ANd實現嗎?

  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將對象傳遞給控制器​​的構造函數?

你是在自問自答:

通過在Unity中注冊IProductRepository接口可以實現這一點嗎?

是。

當您請求使用Unity解析類型時,容器將搜索公共構造函數。 如果構造函數需要某種實現(在您的情況下為IProductRepository ),則容器會在其注冊內搜索所有必需參數的實現。 如果找到,它將解決該問題。 這是一個遞歸過程。

是的 您需要使用該容器注冊IProductRepository的實現, IProductRepository使用該容器解析Controller的實例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM