SPRNET-1213 - Provide ConfigSectionVariableSource support to read <applicationSettings> and <userSettings> elements
This commit is contained in:
@@ -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.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -23,6 +23,10 @@ limitations under the License.
|
||||
<section name="DaoConfiguration" type="System.Configuration.NameValueSectionHandler"/>
|
||||
<section name="DatabaseConfiguration" type="System.Configuration.NameValueSectionHandler"/>
|
||||
|
||||
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
|
||||
<section name="MyApp.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
|
||||
</sectionGroup>
|
||||
|
||||
<sectionGroup name="common">
|
||||
<section name="logging" type="Common.Logging.ConfigurationSectionHandler, Common.Logging" />
|
||||
</sectionGroup>
|
||||
@@ -164,6 +168,17 @@ limitations under the License.
|
||||
<add key="connection.string" value="Provider=Microsoft.Jet.OLEDB.4.0; Data Source=c:\Northwind.mdb;User ID=Admin;Password=;"/>
|
||||
</DatabaseConfiguration>
|
||||
|
||||
<applicationSettings>
|
||||
<MyApp.Properties.Settings>
|
||||
<setting name="connection.string" serializeAs="String">
|
||||
<value>Provider=Microsoft.Jet.OLEDB.4.0; Data Source=c:\Northwind.mdb;User ID=Admin;Password=;</value>
|
||||
</setting>
|
||||
<setting name="maxResults" serializeAs="String">
|
||||
<value>1000</value>
|
||||
</setting>
|
||||
</MyApp.Properties.Settings>
|
||||
</applicationSettings>
|
||||
|
||||
<connectionStrings>
|
||||
<add name="mySqlDataSource" connectionString="mySqlServerConnectionString"/>
|
||||
<add name="myOracleDataSource" connectionString="myOracleConnectionString" providerName="System.Data.OracleClient"/>
|
||||
|
||||
Reference in New Issue
Block a user