時如果我的服務有一些初始化代碼添加服務初始化的方法,我知道兩個選項:使用溫莎城堡IoC容器
實現ISupportInitialize。
專業版:只依賴於.NET本地接口。答案:我通常只使用BeginInit(),所以總是有不必要的空EndInit代碼實現Castle Core的IInitializable。
專業:只需要實施一種方法。答案:我必須讓我的課程取決於Castle Core。
有沒有更好的選擇?
時如果我的服務有一些初始化代碼添加服務初始化的方法,我知道兩個選項:使用溫莎城堡IoC容器
實現ISupportInitialize。
專業版:只依賴於.NET本地接口。答案:我通常只使用BeginInit(),所以總是有不必要的空EndInit代碼
實現Castle Core的IInitializable。
專業:只需要實施一種方法。答案:我必須讓我的課程取決於Castle Core。
有沒有更好的選擇?
有沒有辦法爲每個實現某個接口的組件觸發'OnCreate'? – Steven 2013-04-24 09:46:11
.ConfigureFor
另一種選擇可能是將有關的組件轉換成Castle設施,在那裏你有更明確的控制,但這可能是矯枉過正的。
我只是選擇1.冗餘EndInit是無關緊要的。
您可以創建自己的界面並使用它。你在這裏做的是被稱爲時間耦合,並被許多人認爲是一種設計氣味。閱讀[this](http://blog.ploeh.dk/2011/05/24/DesignSmellTemporalCoupling/)瞭解更多信息。 – 2013-04-23 10:06:49
@DanielHilgarth如果我創建我自己的界面,Castle Windsor如何知道它應該執行這些代碼? – 2013-04-23 10:11:31
它沒有。我不知道代碼是自動執行的。 – 2013-04-23 10:13:34