C# Spring.NET ObjectDefinitionStoreException使用程序集存储配置文件

C# Spring.NET ObjectDefinitionStoreException使用程序集存储配置文件,c#,spring.net,C#,Spring.net,我正在学习Spring.Net,我创建了一个类MyApplication和一个库类MyLib,其中包含MyApplication需要的所有Spring配置文件 我使用以下方法检索元数据: IApplicationContext ctx = new XmlApplicationContext("assembly..."); 我有三个不同的xml文件,一个(springconfiguration.xml)导入另两个。在我开始尝试时,我的spring配置文件位于MyLib的根级别。一切都很顺利 --

我正在学习Spring.Net,我创建了一个类MyApplication和一个库类MyLib,其中包含MyApplication需要的所有Spring配置文件

我使用以下方法检索元数据:

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>
<?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>
但如果我使用子文件夹,则会失败:

----- 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/buttonspring.xml"/>
</objects>
<?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>
错误是:

{"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\" />"}
{“注册在'assembly[MyLib,Version=1.0.0,Culture=neutral,PublicKeyToken=null],resource[MyLib.Configuration.springconfiguration.xml]第5行中定义的对象时出错”:从中导入对象定义的相对资源位置'Gui/SpecialButton/ButtonsString.xml'无效。\r\n”}
我尝试了几种语法,查阅了文档,没有找到任何解决方案。有人知道问题出在哪里吗

更新 好的,我自己发现:正确的语法是:

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


然后不再出现错误,一切正常。

为了让大家知道我找到了一个解决方案:在springconfiguration.xml中,而不是将嵌套在文件夹中的spring配置文件称为:

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

我们必须写下:

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


@谢谢你的解释,理解一个解决方案比仅仅找到它要好;)

这是因为项目文件夹被VS用作名称空间提供者。顺便说一句,您可以回答自己的问题并接受它;这对其他人很有用,因为他们会看到你的问题得到了回答谢谢你让我们知道这个问题已经解决了。你也可以接受自己的答案,但你可能要等一段时间才能接受。