2
當Windsor實例化類型時,是否可以執行一些自定義處理?Castle Windsor:啓動服務時的自定義處理
類似的東西來:
container.Register(
AllTypes.Pick()
.FromAssembly(Assembly.GetExecutingAssembly())
.BasedOn<MyMarkerInterface>()
.WhenInstantiating(instance => // do some stuff with this instance)
.Configure(component => component.Startable().LifeStyle.Singleton)
.WithService.Base());
目前我們使用的IStartable。由於「開始」代碼(即自定義處理)是相同的,所以將這個邏輯移出每個類別將是很好的。
謝謝! Brian
+1,但與容器無關的解決方案是裝飾器:) – 2010-03-22 18:45:02
我不確定裝飾器。你會把邏輯放在哪裏?在.ctor?一旦你的組件被完全實例化了,如果你想讓它被執行,也就是說屬性連接起來了呢? 第一次打電話給任何方法時懶惰地打電話給它?不知道這是個好主意。 – 2010-03-22 18:58:09
謝謝Krysztof。對於其他讀者,在版本2.1.0中添加了OnCreate方法。 – 2010-03-22 21:00:00