diff --git a/src/Spring/Spring.Core/Objects/Factory/Config/ConfigSectionVariableSource.cs b/src/Spring/Spring.Core/Objects/Factory/Config/ConfigSectionVariableSource.cs
index 7c0c1e31..75e584d2 100644
--- a/src/Spring/Spring.Core/Objects/Factory/Config/ConfigSectionVariableSource.cs
+++ b/src/Spring/Spring.Core/Objects/Factory/Config/ConfigSectionVariableSource.cs
@@ -124,10 +124,20 @@ namespace Spring.Objects.Factory.Config
{
variables.Add((NameValueCollection) section);
}
- else
- {
- throw new ArgumentException("Section [" + sectionName +
- "] is not handled by the NameValueSectionHandler.");
+#if NET_2_0
+ else if (section is System.Configuration.ClientSettingsSection)
+ {
+ System.Configuration.ClientSettingsSection clientSettingsSection = (System.Configuration.ClientSettingsSection)section;
+ foreach (SettingElement setting in clientSettingsSection.Settings)
+ {
+ variables.Add(setting.Name, setting.Value.ValueXml.InnerText);
+ }
+ }
+#endif
+ else
+ {
+ throw new ArgumentException("Section [" + sectionName +
+ "] is not handled by the NameValueSectionHandler.");
}
}
}
diff --git a/test/Spring/Spring.Core.Tests/Objects/Factory/Config/ConfigSectionVariableSourceTests.cs b/test/Spring/Spring.Core.Tests/Objects/Factory/Config/ConfigSectionVariableSourceTests.cs
index bbc1781a..daae2c60 100644
--- a/test/Spring/Spring.Core.Tests/Objects/Factory/Config/ConfigSectionVariableSourceTests.cs
+++ b/test/Spring/Spring.Core.Tests/Objects/Factory/Config/ConfigSectionVariableSourceTests.cs
@@ -65,5 +65,17 @@ namespace Spring.Objects.Factory.Config
// non-existant variable
Assert.IsNull(vs.ResolveVariable("dummy"));
}
+#if NET_2_0
+ [Test]
+ public void TestVariableResolutionFromApplicationSettingsSchema()
+ {
+ ConfigSectionVariableSource vs = new ConfigSectionVariableSource();
+ vs.SectionName = "applicationSettings/MyApp.Properties.Settings";
+ Assert.AreEqual("1000", vs.ResolveVariable("maxResults"));
+ Assert.AreEqual(@"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=c:\Northwind.mdb;User ID=Admin;Password=;",
+ vs.ResolveVariable("connection.string"));
+ }
+#endif
}
+
}
diff --git a/test/Spring/Spring.Core.Tests/Spring.Core.Tests.dll.config b/test/Spring/Spring.Core.Tests/Spring.Core.Tests.dll.config
index 335b224c..02a7287f 100644
--- a/test/Spring/Spring.Core.Tests/Spring.Core.Tests.dll.config
+++ b/test/Spring/Spring.Core.Tests/Spring.Core.Tests.dll.config
@@ -23,6 +23,10 @@ limitations under the License.
+
+
+
+
@@ -164,6 +168,17 @@ limitations under the License.
+
+
+
+ Provider=Microsoft.Jet.OLEDB.4.0; Data Source=c:\Northwind.mdb;User ID=Admin;Password=;
+
+
+ 1000
+
+
+
+