我正在將一個項目與Spring.NET和Caliburn v2一起。我有一些我試圖實例化的對象,但不知道如何去做。Spring.Net/Caliburn v2依賴地獄?
我一直在使用Caliburn的IoC方面註解(Singleton和PerRequest)來獲取對象到Spring上下文中。問題在於我有兩個對象A和B,其中對象B是對象A的一個子類(意味着B也是A)。這意味着,如果我同時註冊,Spring會在請求類型A的對象時抱怨含糊不清。爲了解決這個問題,我可以停止使用Caliburn的IoC方面來註冊對象,而是將它們註冊到Spring上下文XML文件中。這樣我就可以在Spring上下文文件中指定一個命名對象,用於對象C的構造函數中,該對象需要注入類型B的對象。
但是,這會產生一個新問題。對象B需要注入Caliburn窗口管理器(在上下文XML文件中列出的對象被實例化時,Spring容器不可用),但是稍後在Caliburn加載並將其自身對象添加到Spring後容器)。
我可以簡單地刪除繼承並讓對象A和B之間發生一些代碼重複,但那麼做OO編程的重點是什麼?否則,我想我正在尋找一種方法來指定Spring.NET上下文XML中的對象,但在Caliburn加載之前不要解析它們。
任何想法?