2012-08-10 106 views
0

我想知道ComponentModel的'AddProperty'方法和'CustomDependencies'字典之間有什麼區別。我試圖設置一個組件的屬性的依賴關係,它已經在容器中註冊了。Castle Windsor ComponentModel AddProperty vs CustomDependencies

首先,我從內核

var registration = container.Kernel.GetAssignableHandlers(component).Select(x => x.ComponentModel).SingleOrDefault(); 

然後我期待以設置組件的屬性依賴檢索組件。它似乎工作時使用CustomDependencies字典,但我只是想知道有什麼區別。

回答

0

AddProperty顧名思義聲明依賴於實現類型上存在的屬性。

CustomDependencies是將任何類型的依賴關係與組件關聯的通用方式。那些可以用於任何事情。

,如果你想依賴關係添加到組件做一個IContributeComponentModelConstruction(是的,這是一個拗口)

+0

所以使用組件方法addProperty從解決時,應強制該屬性與指定依賴注入容器? – cfbarbero 2012-08-13 14:21:10

+0

如果你讓它不可選 – 2012-08-13 21:00:57

+0

好的,我看到問題出在哪裏。我看到的代碼是調用AddProperty,並將DependencyModel的TargetType設置爲propInfo.PropertyType(服務類型),而不是具體依賴項的類型。已經爲服務類型註冊了一個不同的混凝土實例,並且正在使用它來代替我期望的實例。 – cfbarbero 2012-08-20 15:59:06