當我們使用依賴注入容器時,理想情況下,我們只從其中抽取一個頂級對象(例如Program
的實例),並讓該容器的其餘部分自動組合。依賴注入容器:如何處理不依賴任何東西的對象?
但是,有時有些對象不是任何其他的依賴對象,但我們希望將它們放在對象圖中。例如,我可以有一個Notifier
類與Bazinga
事件,這BazingaConsoleLogger
類:
public class BazingaConsoleLogger
{
private readonly Notifier notifier;
public BazingaConsoleLogger(Notifier notifier)
{
this.notifier = notifier;
this.notifier.Bazinga += HandleBazinga;
}
private void HandleBazinga(object sender, EventArgs args)
{
Console.WriteLine("Bazinga!");
}
}
因爲BazingaConsoleLogger
不是任何依賴,它不會被依賴注入容器中創建。解決這個問題的最好方法是什麼?
+1「Bazinga!」 – 2010-08-26 18:51:37
這是你的實際問題還是隻是一個人爲的例子? – 2010-08-26 19:34:21
@Mauricio:我的實際問題稍微複雜一些:我有兩個預先存在的類,它們彼此不知道,我希望第一個類上的事件觸發第二個類上的方法調用。添加導入其他兩個實例的第三個類似乎是實現這一目標的自然方式,但第三個類從未由依賴注入容器實例化。 – 2010-08-27 12:52:13