2013-05-13 59 views
0

我在學習Spring.Net,我創建了一個MyApplication類和一個MyLib庫類,它帶有MyApplication需要的所有spring配置文件。Spring.NET ObjectDefinitionStoreException使用程序集來存儲配置文件

我檢索使用元數據:

IApplicationContext ctx = new XmlApplicationContext("assembly..."); 

我有三個不同的XML文件,一個(springconfiguration.xml)進口其他兩個。在我嘗試開始時,我的spring配置文件位於MyLib的根目錄。一切正常。

----- MyLib 
-- Properties 
-- References 
-- commonspring.xml 
-- buttonspring.xml 
-- springconfiguration.xml 

然後,我創造了一些文件夾MyLib中保存我的XML文件,如果我用的子文件夾失敗:

了以下工作:

----- MyLib 
--Properties 
--References 
--Common 
    --commonspring.xml 
--Gui 
    --buttonspring.xml 
--Configuration 
    --springconfiguration.xml 

我springconfiguration.xml文件則是:

<?xml version="1.0" encoding="utf-8" ?> 
<objects xmlns="http://www.springframework.net"> 
<import resource="Common/commonspring.xml"/> 
<import resource="Gui/buttonspring.xml"/> 
</objects> 

我檢索上下文:

IApplicationContext ctx = new XmlApplicationContext("assembly://MyLib/MyLib/Configuration.springconfiguration.xml"); 

,但如果我用的子文件夾,然後它失敗:

----- MyLib 
--Properties 
--References 
--Common 
    --commonspring.xml 
--Gui 
    --SpecialButton 
     --buttonspring.xml 
--Configuration 
    --springconfiguration.xml 

我springconfiguration.xml文件則是:

<?xml version="1.0" encoding="utf-8" ?> 
<objects xmlns="http://www.springframework.net"> 
<import resource="Common/commonspring.xml"/> 
<import resource="Gui/SpecialButton/buttonspring.xml"/> 
</objects> 

,我檢索中同:

IApplicationContext ctx = new XmlApplicationContext("assembly://MyLib/MyLib/Configuration.springconfiguration.xml"); 

錯誤是:

{"Error registering object defined in 'assembly [MyLib, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null], resource [MyLib.Configuration.springconfiguration.xml] at line 5' : Invalid relative resource location 'Gui/SpecialButton/buttonspring.xml' to import object definitions from.\r\n<import resource=\"Gui/SpecialButton/buttonspring.xml\" xmlns=\"http://www.springframework.net\" />"} 

我嘗試了幾種語法,我在文檔中查找並沒有找到任何解決方案。有人問題出在哪裏?

更新 好,我發現我自己:正確syntaxe是:

<import resource="Gui.SpecialButton.buttonspring.xml"/> 

則沒有錯誤提出了,一切都正常工作。

+0

這是因爲項目文件夾被用作VS的命名空間提供程序。順便說一句,你可以回答你自己的問題並接受它;這對其他人很有用,因爲他們會看到你的問題得到解答。 – Marijn 2013-05-14 12:25:01

回答

1

爲了讓大家在這裏知道的是我找到了解決辦法:在springconfiguration.xml,而不是指的嵌套在文件夾中的Spring配置文件:

<import resource="Gui/SpecialButton/buttonspring.xml"/> 

一個人寫的:

<import resource="Gui.SpecialButton.buttonspring.xml"/> 

@marijn:謝謝你的解釋,理解一個解決方案比找到它更好;)

+0

謝謝你讓我們知道這個問題已經解決了。你也可以接受你自己的答案,但你可能需要等一段時間才能做到。 – Marijn 2013-05-16 06:28:18