diff --git a/src/Spring/Spring.Core/Objects/Factory/Xml/ObjectsNamespaceParser.cs b/src/Spring/Spring.Core/Objects/Factory/Xml/ObjectsNamespaceParser.cs index d9739e7f..7c0d6278 100644 --- a/src/Spring/Spring.Core/Objects/Factory/Xml/ObjectsNamespaceParser.cs +++ b/src/Spring/Spring.Core/Objects/Factory/Xml/ObjectsNamespaceParser.cs @@ -1296,7 +1296,7 @@ namespace Spring.Objects.Factory.Xml } else { - nvc[key] = value; + nvc.Add(key,value); } } return nvc; diff --git a/test/Spring/Spring.Core.Tests/Data/Spring/Objects/Factory/Xml/collections.xml b/test/Spring/Spring.Core.Tests/Data/Spring/Objects/Factory/Xml/collections.xml index b0ff4f72..3707a775 100644 --- a/test/Spring/Spring.Core.Tests/Data/Spring/Objects/Factory/Xml/collections.xml +++ b/test/Spring/Spring.Core.Tests/Data/Spring/Objects/Factory/Xml/collections.xml @@ -361,6 +361,16 @@ + + + + + + + + + + diff --git a/test/Spring/Spring.Core.Tests/Objects/Factory/Xml/XmlObjectCollectionTests.cs b/test/Spring/Spring.Core.Tests/Objects/Factory/Xml/XmlObjectCollectionTests.cs index ba020eba..36c32387 100644 --- a/test/Spring/Spring.Core.Tests/Objects/Factory/Xml/XmlObjectCollectionTests.cs +++ b/test/Spring/Spring.Core.Tests/Objects/Factory/Xml/XmlObjectCollectionTests.cs @@ -430,6 +430,19 @@ namespace Spring.Objects.Factory.Xml Assert.AreEqual("TWO", hasMap.Props["2"]); } + [Test] + public void PopulatedPropsWithSameKey() + { + IResource resource = new ReadOnlyXmlTestResource("collections.xml", GetType()); + XmlObjectFactory xof = new XmlObjectFactory(resource); + HasMap hasMap = (HasMap) xof.GetObject("propsWithSameKey"); + Assert.AreEqual(2, hasMap.Props.Count); + Assert.AreEqual("OnE,tWo", hasMap.Props["foo"]); + Assert.AreEqual(2, hasMap.Props.GetValues("bar").Length); + Assert.AreEqual("OnE", hasMap.Props.GetValues("bar")[0]); + Assert.AreEqual("tWo", hasMap.Props.GetValues("bar")[1]); + } + [Test] public void DelimitedProps() {