2010-10-01 45 views
1

我正在觀看Mike Tautly對棱鏡的出色介紹。這一切都很有道理,但在第六部影片中我有點困惑。團結是否需要任何登記註冊?

他有他的視圖類的構造函數採取ViewModel的參數。然後他說團結會填補我們(即構建它)。

過去他不得不註冊這種東西(即IMyClass註冊到MyClass)。但他並沒有爲ViewModel做到這一點。

我能看到的唯一區別是對ViewModel的依賴不是一個接口,而是一個直接的類。團結看到這一點,只是試圖構建ViewModel或我錯過了一步? (並且如果ViewModel有參數,它會嘗試做出這些參數嗎?)

回答

2

當一個類型可以實例化(即不是基類或接口)時,統一可以找出該類型是如何創建的,而不需要註冊類型映射。

當要注入的類型本身不可實例化時,映射很有用。

我希望這會有所幫助。

謝謝, 達米安

1

Unity嘗試在最大的構造函數中構造注入已解決的依賴關係的類(使用最大數目的參數)。

所以,如果你有這樣的視圖模型:

public class ViewModel 
{ 
    public ViewModel(IMyDependency dependency) { .. } 
    ... 
} 

你只需要註冊IMyDependency

相關問題