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 + + + +