在多層應用程序(ASP MVC:UI項目,DAL項目)中,我在web.config中註冊了組件。如何獲得溫莎城堡的服務實例
現在我有這個問題:工作單元模式已經實現,我需要獲取特定服務的當前實例。服務的註冊發生在UI項目中,但我需要在DAL項目中獲取此服務的當前實例。我如何得到這個參考?
在UI項目我已經需要一種方式來得到的東西解決:
container = new WindsorContainer(
new XmlInterpreter(new ConfigResource("castle"))
);
personRepository= container.Resolve<IPersonRepository>();
難道即可使用的DAL項目相同的技術?如果是,我應該將配置寫入單獨的文件中,以便可以通過所有圖層(項目)訪問它?
對不起,這個(我認爲)天真的問題,但這是我的第一個項目使用城堡,我想我不明白它的大圖片!
代碼片段會有很大的幫助。
在此先感謝!
我明白你的意思了! 但我不明白的是:這應該怎麼做! DAL是它自己的一個組合。在它的一個類中,我簡單地使用(IWindsorContainer容器)作爲構造函數參數?如果是的話,我不需要註冊容器本身(在UI項目中)?怎麼樣? 或者可以(應該)使用這樣的東西: WindsorContainer container = new WindsorContainer(); container.Resolve(); 這意味着沒有構造函數注入。 ...想我不明白如何做到這一點的技巧! –
2009-11-08 22:06:52
不,*避免*直接調用容器。不管它是否是另一個程序集,它仍然是同一個應用程序。使用此項目作爲參考:http://code.google.com/p/blogsharp/ – 2009-11-09 01:37:53